本当にLispはカッコが多い?
最後にあるLispのリーダーマクロを参考にGaucheのfoldを使ったケースを実装してみた。
#! /usr/local/bin/sash (set-macro-character #\! (lambda (p c) (read-delimited-list #\$ p))) ! import ! srfi :1 $ $ ! fold ! lambda ! x y $ ! print ! - x 1 $ "!= " y $ ! * x y $ $ 1 ! iota ! string->number ! cadr ! command-line $ $ $ 2 $ $まぁ、ある意味当たり前だが、括弧8個でいける。
set-macro-characterは本来は(sagittarius reader)をインポートして使うべきだが気にしない。
しかし、これ見てSchemeと思う人はおらんだろうなぁ。
ちょっと文字数を減らしてみた。
#! /usr/local/bin/sash (set-macro-character #\! (lambda (p c) (read-delimited-list #\$ p)) #t) !import !srfi :1 $$ !fold !lambda !x y $ !print !- x 1 $ "!= " y $ !* x y $$ 1 !iota !string->number !cadr !command-line $$$ 2 $$単に
!
をnon-termにしただけ。あと、連続した$
はスペース入れる必要がなかった。よりbrainf**kに見えるなぁ。まぁそれほどではないが。
No comments:
Post a Comment