タグ

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

  • 凄い人見つけた (リリカル☆Lisp 開発日記)

    Lispのひび なんかね、13歳でLisp処理系作ってるらしいですよ。 私が13歳の頃はもぐらたたきを作るのが精一杯でしたよ。 それに引き換え、最近の若い人は凄いですね。 私もCで簡易Schemeインタプリタを作ったことがあるので、 返事がもらえるかは分かりませんが、気になったことを適当に書いておきますね。 * リーダはどうやって書いてるんだろう readを追加。数値アトムを読み込むことに成功。 80文字までのバッファでfgetsでstdinから読む。長すぎる場合、sskipが内部でバッファ切り替えなどもやるような仕組みでLispのと同じ。 (T216の現状) アトム読み込みのとき、isspace(..)の代わりに*.. == ' 'と書いていて間違いだった。改行とかも考慮するんだぁ。 後はリストを上手く読み込むように再帰構造を作るだけ。 (isspace) とのことですが、関

    antipop
    antipop 2008/09/01
  • Y Combinatorって言いにくいから不動点演算子で。 (リリカル☆Lisp 開発日記)

    なんか最近(*) Y Combinator(以下『不動点演算子』)の話題が各所であがっていますが、 あれこれ話はあるものの結局のところ、 F(YF) = YF という式を成り立たせるもの――"不動点"という名の通り、YFをFの不動点にするものだと思います。 (ここの説明が分かりやすいかと。) 不動点演算子自身はこれ以上でも以下でもなく、使い道し次第かと。 記号や演算を最小限にしたのがλ計算だって話もあがってますが、 単純にするならもっと単純にできます。 K ≡ λxy.x S ≡ λxyz.(xz)yz この二つを使えば関数抽象(関数の作成)をすることなく、 関数適用(関数の呼び出し)だけで全てを表せます。 例えば、チャーチ数の 0≡λgu.u は ((s ((s (k s)) (k k))) (k k)) と表せますし、 チャーチ数の後者関数 suc≡λxgu.g((x

    antipop
    antipop 2008/02/02
  • やる夫が変な夢をみたそうです (リリカル☆Lisp 開発日記)

    ----- 読むのがめんどくさい人はこれだけ見て満足するお! (ただし、ニコニコのアカウントが必要だお) by やる夫 ----- ~朝~ ___ /      \ /ノ  \   u. \     はっ、夢!? / (●)  (●)    \   変な夢をみたお… |   (__人__)    u.   |   なんか、ニコニコ動画の投稿者スクリプトで \ u.` ⌒´      /    Lispインタプリタを作ったとかやる夫がいってたお… ノ           \    どうやって作るんだって自分で思ったら、 /´               ヽ  目が覚めたお… |    l              \ ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒)) ___

  • わーい \(^o^)/ LispをPostScriptで書いたLispで書いたよー! (リリカル☆Lisp 開発日記)

    zickです。 最近、巷(*)ではLisp(Scheme?)を実装するのが流行っているようで。 その流れにのっとって私も変なものをつくってみました。 ***PostScriptで書いたlisp*** ソース 実行結果 名前はまだないのですが、仮にpslispと呼びます。 このpslispはPostScriptで書いたLispインタプリタです。 単に式を評価するだけではなく、その値を図示してくれる優れもの(?)です。 実は去年の4月ごろにほぼ完成していたんですが、 条件分岐などを加え、再帰が使えるようになりました。 ***pslispで書いたlisp*** ソース 実行結果 pslispで動かすためにエスケープ文字を付加し、改行を消しているためカオスなことになってます。 まあ、これだけ見てもなんのことやらといった感じですが、 自分で書いたlispインタプリタの上でさ

  • 1