Common Lisp

クロージャを使って FizzBuzz

FizzBuzz 関数 (defun FizzBuzz (i) (lambda () (setq s (concat (elt '("Fizz") (mod i 3)) (elt '("Buzz") (mod i 5)))) (prog1 (if (string= s "") i s) (setq i (1+ i))))) 利用コード (block nil (setq f (FizzBuzz 1)) (do ((i 1 (1+ i))) ((< 100 i))…

まずはFizzBuzz

よし、できた (do ((i 1 (1+ i))) ((< 100 i)) (if (= (mod i 3) 0) (princ "Fizz") ) (if (= (mod i 5) 0) (princ "Buzz") ) (if (and (< 0 (mod i 3)) (< 0 (mod i 5))) (princ i) ) (terpri) ) 空白除去バージョン (do((i 1(1+ i)))((< 100 i))(if(=(mod …

いつか手を出そうと思っていた

50年の歴史に秘められた高階プログラミングのヒミツ - sshi.Continualその時が近づいてきたかもしれない。

(# ゚Д゚) ムッカー

なんで無限ループすんだお ((lambda (x) (let ((i 0)) (while (< i x) (1+ i)))) 5) (#^ω^) スコープが怪しいな、うん (#^ω^) ・・・ (#^ω^) ・・・(1+ i) って i の中身変わんないんじゃね?

へ〜〜

Common Lisp の CLOS って機能によって OOP ができるみたい。 僕が今使っている処理系 (xyzzy Lisp) だと残念ながらサポートしてないみたいだけど。 まぁその前に基本を覚えなきゃ話にならないな。 以下、僕が参考にさせてもらってるページ。Lisp“ü–å ホーム…

なんとなく

Common Lisp とやらを勉強中。 変数の代入は setq ってのを使うらしい。 脳内には"セットク"として刻まれた。