タグ

lispに関するjapo99のブックマーク (3)

  • Cが最速なんてもう言わない - なつたん

    例によってHigher-order Perlから 昨日までは、同じ処理を同じアルゴリズムで書いたらC/C++が一番早いに決まっているという信念があったのですが、このを読んで考えが変わりました。2007年11月3日はそんな記念日。 相変わらずメモ化の話なんですが、 ・フィボナッチ書けたよ → 遅くね? ・メモ化したよ → 毎回メモ化の仕組み作るの面倒じゃね? ・closureがあるよ → 引数が一つの時しか使えなくね? ・joinでつなぐよ → f("x,", "y")と、f("x", ",y")でバグるよ ・正規表現でエスケープするよ → 遅くね? ・key generatorを引数で渡して、if文で切り替えたらどうよ → if文無駄じゃね? ・eval使うよ ← 今ここ という議論を経て、evalを使う話。上の議論は全部Perlのソース付きで説明されています。 で、問題のコードがこれ。

    Cが最速なんてもう言わない - なつたん
  • L2Lisp in Ruby:CodeZine

    はじめに P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。 実行例としてtak関数を定義し、実行する様子を示します。Ruby以外に必要なのはL2Li

  • Scheme:Lisp プログラマのためのPerl入門

  • 1