ニコ動Lisp 2.0[lambda始動]

ニコニコ動画のメンテナンスが終わったので、ニコ動Lisp2.0(仮称)が始動しました。

「もっと評価されるべき」タグが付いていたので、文字アトムも評価することに。
もっと評価されるべきの意味が違うという突っ込みもありました。
期待通りの突っ込みをありがとうございます。
それはともかくスクリプトを更新して1分もしないうちに
「ラムダきたー」というコメントが書き込まれたんですよ。
どれだけlambdaが欲しかったんだwwww
まあ、なにはともあれ、lambdaが無事動いてよかった。
普段から「lambdaかわいいよlambda」とお思いの諸兄も安心してニコニコできますね。

prognとかdefunとかLisp的(NOT Scheme的)なスペシャルフォームを持っていますが、
lambdaに関してはScheme的な評価規則となっています。
CommonLispでは次のような式は動作しません。

(((lambda (x)
(lambda (y)
(+ x y)))
3)
4)

というのも、関数適用の第一要素はシンボルか(lambda …)に限られているためです。
一方、Schemeではこの式は正しく動作します。
Schemeでは手続き呼び出しの第一要素を評価したものを手続きとして扱い、その形は問わないからです。
ニコ動LispもこのSchemeの規則に従っています。
そのため、上記式は問題なく動きます。

ニコ動Lispはセル、スタックを自分で管理しているので、
本当はGCを書かないといけないんですけど、サボって書いていません。
評価しすぎると大変なことになるのでご注意を(笑)
……いま気づいたんですが、スタックを自分で管理してるってことは、
call/ccも結構簡単に書けますね。頑張れば。
でも、あまりにソースが汚いので頑張る気は起きません(笑)

あの巫女の絵は誰が描いたのかという質問があったので回答。
あれは私の兄が書いたものを無断で使用しました。
以下私と兄のメールでのやり取り。
zick:
前の一恋とクルルの絵を無断で使わせてもらうよ!
(↑こういった時点で無断じゃなくなったやったね(笑))
兄:
お前・・・・頭、いいな・・・

2 Responses to “ニコ動Lisp 2.0[lambda始動]”

  1. λ... より:

    遊んでる最中にdefunとか書き込まれたので全力でF5押してλ式書き込みました。
    もし次バージョンがあるなら120分くらいの動画でお願いします。

  2. zick より:

    まさか同時に見てる人がいるとは(笑)
    そんなこんなで長時間版を作りました。
    よろしければそちらもどうぞ。

Leave a Reply