タグ

ブックマーク / lispuser.net (6)

  • LISPMEMO

    LISPUSERLISPMEMOLisp is a programmable programming language. -- John Foderaro 各方面で大絶賛の嵐。というより Lisp を叩くのが人気。 Lisp の不人気は相当なものである - http://www.rubyist.net/~matz/20070112.html Lispが大衆受けしない理由は、その表記法の非人間性、あるいは、慣習との齟齬に尽きると感じています。 - http://enbug.tdiary.net/20070118.html#p02 Lisp が敬遠されてる理由って、はっきりいって syntax だと思うなぁ - http://d.hatena.ne.jp/babie/20070118/1169119443 こうして不人気の再生産に入るのか? 追記:1/28 Shiro さんのところに素晴しいエ

    kohagi
    kohagi 2009/07/17
  • LISPMEMO

    LISPUSERLISPMEMOLisp isn't a language, it's a building material. -- Alan Kay 今回は前回作った LISP インタプリタにマクロを実装します。 構文木 Eval 式だと最適化の余地とかあんまりなくて面白くないんで、 次回は大きくリファクタリングしてバイトコード VM の導入ですかねぇ。 各章の先頭の煽り文句は、昔某掲示板に投稿した銀河帝国ネタからの抜粋です。↓こんなの。 もちろん第二ファウンデーションは Scheme 使いの集団の予定でした。第一とは仲が悪いあたりも似てますね。 第一銀河帝国は、何世紀にもわたって少しずつ頽廃と崩壊を続けていた。 だが、その事実を理解している人間は、帝国の生んだ最後の天才科学者、ハリ・セルダンだけだった! 彼は自ら完成させたλ歴史学を用いて帝国の滅亡とその後に続く3万年の暗黒時代を予言

    kohagi
    kohagi 2009/04/25
  • LISPMEMO

    Emacs から SLIME を起動すると (http://lispuser.net/emacs/lisphacking.html , http://lispuser.net/commonlisp/clisp.html 参照) 、 CL-USER> というプロンプトが表示されていると思います。 CL-USER> ここに、プログラムを入力することで、 Lisp にプログラムを解釈させて結果を確認することができます。 さっそく Lisp にプログラムを実行させてみましょう。 CL-USER> (+ 1 2) 3 これは、 1 + 2 を計算させるプログラムです。 (+ 1 2) の意味は、関数 + パラメータとして 1 と 2 を渡す、という意味になります。 乗算を行いたい場合には関数 * を使用してみてください。 CL-USER> (* 3 4) 12 もちろん、式を入れ個にする事もできます

    kohagi
    kohagi 2009/04/25
  • Common Lisp と 日本語 と 文字コード

    external-format の使い方がわかったところで、実用的には文字コードの判定処理が必要になる場合が多い。 external-format を知っただけでは、with-open-file の external-format に何を指定すればいいのか迷ってしまう。 で、いろいろ蘊蓄を語ろうと思ったのだが、ふと Gauche の文字コード判定処理を CL に移植して比較したところ 性能、精度とも私の手作りのものより断然よかったのでこっちを採用。 Gauche のソースの ext/charconv/guess.scm, ext/charconv/guess.c, ext/charconv/guesstab.c が日語エンコーディング判定処理だ。 guess.scm で状態表 guesstab.c を出力し、 C コンパイラで guess.c guesstab.c をコンパイルしてモジュ

    kohagi
    kohagi 2008/04/08
  • LISPMEMO

    kohagi
    kohagi 2007/09/17
    Common Lispでは「何でも再帰」しない
  • LispUser.net : 最高にキモい Lisp コードを書いてみよう with 100 行リーダーマクロ

    LISPUSERLISPMEMOLisp is like a ball of mud - you can throw anything you want into it, and it's still Lisp. -- Anonymous Ruby 方面でみかけたネタに触発されました.Lisp はプログラマブルな言語な のでリーダーもプログラマブルです.そこでリーダーをいじって let や defun などの構文を括弧じゃなくて end にでもしてみましょうか. 100 行程度を目標にトライしました.使ったライブラリは CL-Yacc のみです. できあがったのがこちら. #@suck-lisp defun fib (n) if (< n 0) (error "oops") elif (= n 0) 0 elif (= n 1) 1 else let x <- (fib (- n 1))

    kohagi
    kohagi 2007/05/28
  • 1