lisp

RubyでLispっぽいの書く(1)

大学の課題でScheme処理系をRubyで実装します。東大のminiPythonなんかが微妙に有名になってるけど電気通信大学情報工学科課程も負けてないじゃないかやったね! まあそれは嘘で、大学の課題で「Rubyである程度大きくて実用的なプログラム書いてください」と…

lisp処理系ぽいの書いてみたり

間違ってもScheme処理系ではありません。適当に書いてるので、たぶん色々適当です。わりと面白い。 % ./istsp > (* 10 (/ 9 3) (+ 1 2)) 90 > (null? nil) #t > (not #f) #t > (eof? (read)) 322 #f > (eof? (read)) ^D#t > (cons "hoge" "moge") ("hoge" . …

REPL

wikipedia:Eval Lispはeval 関数を利用したオリジナルの言語であった。evalの定義によって、Lispインタプリタの最初の実装が現れたのである。evalが定義される以前は、 Lispの関数は手動でアセンブリ言語の文にコンパイルされていた。しかし一度eval関数が手…

速度

Gauche って結構速いらしい。CLISP は遅い。GCL は速い。 それというのも、大学の課題の N-Queens を解くコードのプロトタイプを Scheme で書いて、うまくいったからさて課題で定められてる Common Lisp にコードを書き換えて clisp にやらせたら、まあ遅か…

大学の講義でほげ。

今日の講義で (Emacs) Lisp をとりあつかったんだけど、「リストで表現された文字列に、文字を挿入/削除する関数つくってみ」つー問題で示された解答のソースコードに setcdr とかはいっててほげ。ふつーに (defun insert (string offset character) (if (=…

test