Halloween問題とは
Halloween問題とは
ただのFizzBuzz問題です。
思いついたので作った。でもあと少しで10月31日が終わる...。
(defun hallo-ween (n limit) (if (<= n limit) (progn (cond ((zerop (mod n 15)) (princ "Halloween! ")) ((zerop (mod n 3)) (princ "Hallo " )) ((zerop (mod n 5)) (princ "ween! " )) (t (princ n) (princ " "))) (hallo-ween (1+ n) limit))))
実行
(hallo-ween 1 30) ;;1 2 Hallo 4 ween! Hallo 7 8 Hallo ween! 11 Hallo 13 14 Halloween! 16 17 Hallo 19 ween! Hallo 22 23 Hallo ween! 26 Hallo 28 29 Halloween! nil
loopバージョン
(defun hallo-ween-loop (n) (cond ((zerop (mod n 15)) (princ "Halloween! ")) ((zerop (mod n 3)) (princ "Hallo " )) ((zerop (mod n 5)) (princ "ween! " )) (t (princ n) (princ " "))))
実行
(loop for n from 1 to 30 do (hallo-ween-loop n)) ;;1 2 Hallo 4 ween! Hallo 7 8 Hallo ween! 11 Hallo 13 14 Halloween! 16 17 Hallo 19 ween! Hallo 22 23 Hallo ween! 26 Hallo 28 29 Halloween! nil
もっと早く思いついて作りたかった。
関連リンク
・print, princ, prin1の違いを書いてる
Cからlispへの変換 (ただの出力) - プログラムとかののblog
・loop関連
http://www.apl.jhu.edu/~hall/Lisp-Notes/Loop-Summary.html
微酔半壊: Common Lisp: loopマクロ用法抄
ループ - Common Lisp クックブック