CommonLisp

LLGolf Hole 3

doukaku.orgxyzzyでも動くよう、ごく普通に。 ;xyzzy用 ;(defmacro nth-value (n form) ; `(nth ,n (multiple-value-list ,form))) (do*((m 1 (1+ (mod m 12))) (y 2008 (+ y (if (= 1 m) 1 0))) (u 0 (encode-universal-time 0 0 0 13 m y)) (c 0)) ((< 201…

SLIME

PCLの最初の方で使い方が紹介されてたので試してみる。 Meadowのインストールは色々めんどそうなので、VirtualBox上のUbuntuのEmacsで。 パッケージになってるのでインストールは超簡単。.emacs.elにも4行書くだけ。 使い方とかはこの辺読んでみよう。あと以…

PCL届いた。

昨日受け取り損ねて今日ゲット。 しかし今日は今日で読める時間がない。 序文だけ読んだ。とりあえず明日から持ち歩く。

昼休みcoding

[http:/d.hatena.ne.jp/nowokay/20080717#1216294670] via:[http:/d.hatena.ne.jp/yuki_neko_nyan/20080718/1216340919:itle] (defun gen-perm (terms &optional (l nil)) (unless l (setf l (length terms))) (labels ((iter (acc &rest arg) (if (= l (len…

mapl

ちょっと前に覚えたmaplist系の関数を使いたくてCommonLispスレの17を書いてみた。 (defun numlist (nums c s) (if (= c 1) (if (member s nums) `((,s)) nil) (let (result) (mapl #'(lambda (l) (aif (numlist (cdr l) (1- c) (- s (car l))) (mapc #'(lam…

実践CommonLisp

Amazonに来てた。 実践Common Lisp作者: Peter Seibel,佐野匡俊,水丸淳,園城雅之,金子祐介出版社/メーカー: オーム社発売日: 2008/07/26メディア: 単行本(ソフトカバー)購入: 8人 クリック: 192回この商品を含むブログ (69件) を見る予約完了。目次を見た…

ゆの in CommonLisp

元ネタ ゆの in Ruby - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech ゆの in language放映圏外からわっしょい。原作は読んでます。愛知に住みたいです。括弧で括ろうかと思ったけど、On Lispを頼りにリードマクロ初挑戦。 (set-macr…

そして逃避

RubyKaigi2008 Golfコンペ 複利計算の問題をCLで書いてみる。 (let* ((l (read-from-string (substitute #\ #\: (format nil "(~A)" (read-line))))) (m (cadr l))) (dotimes (i (car l)) (incf m (floor (* (print m) (caddr l) 0.01))))) xyzzyで動かすと…

練習

与えられた木から、子→親への対応を作る CommonLispで書いてみる。 (defvar *tree* '(Root (Spine (Neck (Head)) (RClavicle (RUpperArm (RLowerArm (RHand)))) (LClavicle (LUpperArm (LLowerArm (LHand))))) (RHip (RUpperLeg (RLowerLeg (RFoot)))) (LHip…

ラムダ計算遊び用コード まとめ

昨日見つけたページに倣ってλ項の名前には全部頭に%をつけて、ついでに左から適用してく関数を%としてみた。 とりあえずxyzzyとSBCLで動いてるけど、真偽値の辺りちゃんとテストしてない。 ; utility (defun % (&rest arg) (reduce #'funcall arg)) (defun $…

ラムダ計算で除算・剰余

sub、iszero、あと再帰でなんとか書けた。 ; TRUE := λx y.x (defvar true (lambda (x) (lambda (y) x))) ; FALSE := λx y.y (defvar false (lambda (x) (lambda (y) y))) ; ISZERO := λn.n (λx.false) true (defvar iszero (lambda (n) (app n ($ true fals…

数字の分割

なんかxyzzyでProject Eulerやってる同志発見 → クリップしとこ → はてブでもないのに速攻捕捉された(! という流れで、ちゃんと書いた自分のコードを晒してみる。Project EulerのNo.20 (defun str-to-digits (s) (mapcar #'(lambda (c) (- (char-code c) 48…

括弧いらなかった

funcallで呼び出すからdefunじゃなくてdefvarとかで良い事に気付いた。 (defun app (&rest arg) (reduce #'funcall arg)) (defun $ (&rest arg) (reduce #'funcall arg :from-end t )) (defun charfn (code) (lambda (&optional (a nil)) (if a (if (= code …