リスト作る系ループ関数でFizzBuzz【CommonLisp、Scheme、Clojure】

;CommonLisp (format t "~{~A~^~%~}~%" (loop fo […]

;CommonLisp (format t "~{~A~^~%~}~%" (loop fo […]

  • タグ:
  • タグはありません
;CommonLisp
(format t
"~{~A~^~%~}~%"
(loop for i from 1 to 100 collect
(let (
(isFizz (= 0 (mod i 3)))
(isBuzz (= 0 (mod i 5))))
(cond
((and isFizz isBuzz)
"Fizz Buzz")
(isFizz
"Fizz")
(isBuzz
"Buzz")
(t
i)))))
(quit)
;Scheme(sash)
(import (srfi 1))
(display
(string-join
(list-tabulate 100 (lambda(i)
(let ((i (+ 1 i)))
(let (
(isFizz (= 0 (mod i 3)))
(isBuzz (= 0 (mod i 5))))
(cond
((and isFizz isBuzz)
"Fizz Buzz")
(isFizz
"Fizz")
(isBuzz
"Buzz")
(else
(number->string i)))))))
"\n"))
;Clojure
(println
(clojure.string/join
"\n"
(for[i (range 1 (inc 100))]
(let [
isFizz (= 0 (mod i 3))
isBuzz (= 0 (mod i 5))]
(cond
(and isFizz isBuzz)
"Fizz Buzz"
isFizz
"Fizz"
isBuzz
"Buzz"
:else
i)))))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX