最近Lispに触ってないことに気づいて遊んでみた。
共有構造を利用してFizzBuzz問題を解く。リストにアクセスするだけになるので、剰余を使わないで済む。(ORは使ってるけど)
(defun fizzbuzz ()
(let ((l (quote #1=(nil nil fizz nil buzz
fizz nil nil fizz buzz
nil fizz nil nil fizzbuzz . #1#))))
(loop :for i from 1 to 100
:collect (or (nth (1- i) l) i))))
0 件のコメント:
コメントを投稿