Parens Language in Lisp
404 Blog Not Found:Math - 新言語、(), [] and {}
これはLispで実装しとかないとなーという事で書いてみた。Gauche用。
parens language (in scheme)
こんな感じで動いてます。
gosh> (parens->lisp '((((())))(((())))(((()))))) ; (UUUU)(UUU)(UUU) = SKK = I (((U (U (U (U U)))) (U (U (U U)))) (U (U (U U)))) gosh> (parens->jsstr '((((())))(((())))(((()))))) "U(U(U(U(U))))(U(U(U(U))))(U(U(U(U))))" gosh> ((parens '((((())))(((())))(((()))))) 'hi) ; (I 'hi) hi gosh> (define (num->parens n) (case n ((0) '(())) ((1) ()) (else `((((()))) ((((())))(((()))((((())))))(((())))) ; succ = S(S(KS)K) (,(num->parens (- n 1))))))) num->parens gosh> (define (cnum->num f) ((f (cut + <> 1)) 0)) cnum->num gosh> (let ((c2 (parens #?=(num->parens 2)))) (cnum->num (((c2 c2) c2) c2))) #?="(input string port)":1:(num->parens 2) #?- ((((()))) ((((()))) (((())) ((((()))))) (((())))) (())) 65536
ついでにCommonLisp版も。
あと括弧カッコカワイイ宣言 10/4発売です。
- 作者: 地獄のミサワ
- 出版社/メーカー: 集英社
- 発売日: 2010/10/04
- メディア: コミック
- 購入: 11人 クリック: 965回
- この商品を含むブログ (97件) を見る
今月号にも出てた加奈子はちょっと可愛いかもしれない。