タグ

ブックマーク / practical-scheme.net (4)

  • Scheme:マクロの効用

    普通のやつらの上を行けでLispにおけるマクロの効用が述べられているが, 「じゃあ具体的にマクロを使って『こりゃ便利だ』っていう例を見せてよ」 と言われてもなかなかすぐに出て来ない。 そこで、なんかいいマクロの使用例を思い付いたら書いてってみるコーナー。 通りすがりのマクロ初心者です。便利なマクロの具体例はすごく知りたいので、この項、期待してます。 Paul Graham「On Lisp」を読書中でなかなか良いけど、日語の解説があった方が理解が早まるので。 もくじ マクロを使う局面定型パターンの簡略化関数呼び出しのインライン展開の代用新しい構文による抽象化ミニ言語の埋め込み宣言的なコードに見せるコンパイル時の処理具体例クラス定義でのリーダーの生成リストの内包表記 (List comprehension)リストの構築他の処理系の移植 関連:Scheme:マクロの危険 マクロを使う局面 なん

    Scheme:マクロの効用
  • ボトムアップでプログラミング

    原文: Programming Bottom-Up 1993 (このエッセイはOn Lispの序文からである。赤いテキストはArcの名前の起源を説明している。) プログラムの関数要素は大きくしすぎるべきではない、というプログラミングスタイルの原則に基づいている。 もしプログラムのある部品が簡単に理解できる大きさを超えて肥大すると、大都市が逃亡者を隠すのと同じくらい容易に誤りを隠す複雑さの固まりになってしまう。 そのようなソフトウェアは読みにくく、テストしづらく、デバッグしにくい。 この原則によると、大きなプログラムは小さな塊に分割しなければならない、そしてプログラムが大きければ大きいほどさらにそれを分割しなければならない。 どうやってプログラムを分割するか? 伝統的なアプローチはトップダウンデザインと呼ばれる: あなたはこう言うだろう、「プログラムの目的はこれらの7つをすることなので、7つ

    ボトムアップでプログラミング
  • On the Relationship Between Python and Lisp

    PythonとLispの関係について Paul Prescod 日語訳:Shiro Kawai (shiro @ acm.org) これは、 Paul Prescod:On the Relationship Between Python and Lisp を、原著者の許可を得て翻訳・公開するものです。 2002/06/02 翻訳公開 Lispは時代のはるか先を行っていた。 Lispは最初の高級言語だったから、それ以降に現れた良いものは全てLispの再発明だ、 と信じたくなる人々がいる。 JavaはLispだ。XMLもLispだ(違うのだが)。 そして今度は、PythonはLispだそうだ。 有名なLispエキスパートである Paul Grahamが提示した話はこうだ。 彼が議論に選んだ3つの言語、JavaPerlPythonのうち、 PythonPerlより(ポピュラーではないにせ

    On the Relationship Between Python and Lisp
    madpiero
    madpiero 2012/04/05
    "Pythonに移行したことで何か大きなものを失ったとは思っていないようだ" という点がどうしてもいまいち信じられない。lispらしい機能がないためpythonに不満を持っているrubistすら多くいるっぽいし。
  • Lisp:よくある正解 - Lispについての正しい認識と、それでもLisperがLispを使う理由

    Lispについての正しい認識と、それでもLisperがLispを使う理由 yoriyukiさんのエントリがなかなか 真実を突いていたので、ネタにさせていただきます。 原因のほとんどは経路依存性とかネットワーク効果によるもので、Lisp自体の性質とは無関係だと思います。と言った上で、私が何となくLisp系言語を使わない理由としては、 Too dynamic: 実行時にコードが差し替えられることがすごい利点だ、と言っている人がいましたが、逆に言えば今どのコードが走っているか理解しにくい、という欠点にも繋がる。 Meta programming:S式のおかげでMeta Programmingがしやすいが、Meta Programmingを多用したプログラムは理解しにくい。 動的型付け:利点でもあるけど、特有のバグを引き起こす。 識別子に関数と値の2種類が別々にバインドできる。これは私には非常に美

    Lisp:よくある正解 - Lispについての正しい認識と、それでもLisperがLispを使う理由
  • 1