2010/03/19

TSS leftmost, let/cc, named-let

let のこんな使い方は驚きました。begin とか progn と同等と考えて良さそうですね。
(let () a b . . .)


コードの方↓は、なんともゴチャゴチャしてしている。

ところで明日は 9LISP


The Seasoned SchemerプログラミングGauche

2 件のコメント:

  1. Scheme の begin には面白い特徴があります。
    新しいスコープを作らないのです。

    例えば ↓ こんなコードでエラーが起こりません。
    (begin (define a 1))
    (display a)

    a はトップレベルで定義されたことになります。
    記事中のコードは begin と let のどちらを使っても問題ないと思いますが、同等と考えていると不意につまづくこともあるかもしれません。
    begin のこの性質はマクロを書くときに必要になることがあります。

    返信削除
  2. ご指摘ありがとうございます!
    全然、等価じゃないみたいですね^^;

    返信削除