zick
zickです。某社でソフトウェアエンジニアとして働いています。
大学に入ってLispというものを知り、しばらく触ってるうちに、何を勘違いしたのか 「インタプリタがかけそうな気がしてきた」と思い込み、CでLispインタプリタを書きました。 書いている途中で、関数と変数が同じネームスペースであるSchemeの方がカッコイイと感じ、Schemeインタプリタに変更。 半年ほどして、ごみ集め、真の末尾再帰、一級継続の付いたそれっぽいものが完成しました。 そこから調子に乗って、SchemeライクなLispインタプリタ(*)をJavaScriptで書いてみたり、Windows用のゲーム記述言語であるNScripterで書いてみたりしました。 問題は、インタプリタばっかし作っていて、Scheme自体の勉強をあまりしてないこと...... だったのですが、いつの間にかLisp/Schemeを日常的に使ったり作ったりする研究室に配属されていました。 世にLisp関係の論文を送り出せたり、 修士論文に関してはタイトルにまで「Lisp」の文字を入れることが出来ました。 非常に残念なことに、仕事ではLispは使っていません。早くニートになりたい。
(*)defunがなくてdefineだったり、変数と関数のネームスペースが同じだったりします。 しかし、どのSchemeの仕様にも準拠していないので、"Scheme"を名乗るのは出来るだけ避けていました。 しかし、歳を重ねるとともに、どうでもよくなって来ました。
- 地獄Lisp(JavaScriptによる実装)
- 地獄Scheme(地獄Lispにcall/ccをつけたもの)
- NScLisper(NScripterによる実装)
- PostScriptによる実装(実際にプリンタで動作します)
- PrologによるSchemeの意味論からの実装(R6RSの操作的意味論をそのまま使っています)
- ニコニコ動画上での実装(リンク先の動画で実際に動かせます)
- PocketStation上での実装(リンク先は実行時の映像)
- Scratchによる実装
- Luaによる実装
- Pythonによる実装
- Rubyによる実装
- Rによる実装
- Perlによる実装
- Factorによる実装
- Ioによる実装
- Nekoによる実装
- Tclによる実装
- CoffeeScriptによる実装
- TypeScriptによる実装
- Dartによる実装
- Falconによる実装
- Euphoriaによる実装
- JSXによる実装
- Fantomによる実装
- Ceylonによる実装
- Groovyによる実装
- Starndard MLによる実装
- OCamlによる実装
- Dによる実装
- Javaによる実装
- C#による実装
- Haxeによる実装
- F#による実装
- Kotlinによる実装
- Juliaによる実装
- Scalaによる実装
- LiveScriptによる実装
- Eiffelによる実装
- Smalltalkによる実装
- Iconによる実装
- Oberon-2による実装
- Squirrelによる実装
- Dylanによる実装
- Iokeによる実装
- Eによる実装
- Pikeによる実装
- Processingによる実装
- Ozによる実装
- Booによる実装