10 times print "hello
10回"hello"と表示するプログラムについて2chのスレで話題になっていたのがおもしろかったので。私はよく寝る前にimonaとかでム板とかマ板とかのぞいてます。主にLispとかScheme関連のスレとあとはC#やF#など。
do
手続き型の言語に染まっていれば最もストレートなコードではないでしょうか。;; do (do ((i 0 (+ i 1))) ((= i 10)) (print "hello")) |
let loop
これもまぁdoとあまり変わりませんね。;; let loop (let loop ((s 0)) (if (< s 10) (begin (print "hello") (loop (+ 1 s))))) |
for-each
これは結構schemeらしいと思います。Scheme的には一番ストレートでは?;; for-each (use srfi-1) (for-each (lambda (i) (print "hello")) (iota 10)) |
recursive lambda
これもSchemeらしいですね(笑)Y Combinatorを思い出しますね。;; recursive lambda ((lambda (f) (f f 10)) (lambda (f n) (cond ((< 0 n) (print "hello") (f f (- n 1)))))) |
0 件のコメント:
コメントを投稿