2009年9月3日木曜日

共有構造でFizzBuzz

最近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 件のコメント:

コメントを投稿