2007-06-25から1日間の記事一覧

Lispインタプリタ(2)

でーきーたー。 Main >run "(begin (define fact (lambda(x) (if (= x 0) 1 (* x (fact (- x 1)))))) (fact 10))" 3628800 複数の式の評価には、また対応していないけれど、ちゃんと階乗も計算できる。で、 lispEq (x:y:[]) env = let (x',env') = eval x en…

Lispインタプリタ

id:zyxwvに対抗して、Lispインタプリタを作る。まだ、S式計算機という程度。30分で作ったわけじゃないけど、とりあえず、今日はこれで。とこで、 pInt = do x <- many1 digit return $ Int $ read x や pNil = do string "()" return $ List [] -- liftM?? …