タグ

ブックマーク / blog.bugyo.tk (4)

  • リリカル☆Lisp開発日記 » Blog Archive » ScratchでLisp作った

    突然ですが問題です。この画像は何でしょうか。 答え: Lispインタプリタのソースコード 「なんちゅうソースコードだ」と思った方はぜひこちらからお試しください。 「中を見る (See inside)」を押すことでソースコードが読め、その場で書き換えることも出来ます。 — というわけでScratchでLispインタプリタを作りました。ScratchとはSmalltalkを元に作られたSqueak、を元に作られた教育用のプログラミング言語/開発環境だそうです。キーボートで文字を打ち込むのではなく、マウスでブロックを並べることによってプログラムを作ります。子供でも簡単にプログラムを作成することができるらしいので、つまり子供でも簡単にLispインタプリタが作成できるということですね。 一見、非常に低機能な言語のように見えますが、一通りの機能は揃っているので、足らない部分は努力で補えます。 ビット演

  • リリカル☆Lisp開発日記 » Blog Archive » 自作Lispインタプリタを公開して後悔しないように

    (この記事はLisp Advent Calendar 2日目のためのエントリです。) 「え、お前の家、カレーに味噌汁付けてるの!?」 頑張って作っていたLispインタプリタがついに完成。友達に自慢してソースコードを見せてみたら 「え、なんでそんな実装になってるの? それって変じゃない?」 といった反応が返ってきたことはありませんか。きっとありますよね。昔から「人の数だけLispがある」と言われていまして、書く人によって色々と違いが出てくるのは当然です。しかし、どんな違いが出てくるのかを知らないと、要らぬ混乱を招く可能性があります。 この記事を読むことで、一言に「自作Lispインタプリタ」と言っても、色々なやり方があることを知り、友人の心ない発言に傷ついたり、逆に人を傷つけないようにする知識を身につけた気分になれます。 「あの人は自分でごみ集めを書いてくれたのに」 Lispインタプリタを書く

    Kureduki_Maari
    Kureduki_Maari 2014/01/10
    .。oO(はい(〃l _ l) リリカル☆Lisp開発日記 » Blog Archive » 自作Lispインタプリタを公開して後悔しないように
  • リリカル☆Lisp開発日記 » Blog Archive » Ozと末尾再帰の最適化

    「コンピュータプログラミングの概念・技法・モデル」というで、 Ozというプログラミング言語の説明を見ていたら、驚かされる記述がありました。 それは、ただの、素朴なmapの定義です。 fun {Map Xs F} case Xs of nil then nil [] X|Xr then {F X} | {Map Xr F} end end 独特な記法の言語なので、Schemeで書き直すと、次のようなものです。 (define (map xs f) (cond ((null? xs) '()) (else (cons (f (car x)) (map (cdr x) f))))) このプログラムですが、末尾再帰に書き直されて、 反復構造になるらしいです。 リストを構成する途中で再帰呼び出しをしているため、 普通は末尾再帰の形に直らないだろうと思っていたのですが、 Ozの場合、このプログラムが

    Kureduki_Maari
    Kureduki_Maari 2013/10/13
    .。oO(末尾再帰でmap) リリカル☆Lisp開発日記 » Blog Archive » Ozと末尾再帰の最適化
  • リリカル☆Lisp開発日記 » Blog Archive » メリークリスプマス!

    【メリークリスプマス!】 クリスマスにこのセリフを言って、みんなを凍り付かせよう。 This entry was posted on 日曜日, 12月 25th, 2011 at 12:00 AM and is filed under 雑記. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

    Kureduki_Maari
    Kureduki_Maari 2011/12/25
    .。oO(めりークリスプlispマスヾ(〃l _ l)ノ゙☆
  • 1