タグ

2012年12月17日のブックマーク (2件)

  • Scheme:マクロ:CommonLispとの比較:意味論

    前回までのあらすじ MSIの黒田さん wrote in About Scheme: 「Schemeじゃまともなマクロが書けないでしょう」 Shiro wrote in Scheme:マクロ:CommonLispとの比較: 「Schemeではhygienic macroという形でその問題を解決してます」 MSIの黒田さん wrote in GaucheNight: 「でもR5RSではセマンティクスが文字の並びで定義されてるんだから、S式の操作でプログラム生成をするマクロとは相容れないんじゃないの」 何が問題なのか Shiro(2007/05/16 04:43:15 PDT追記): 論点がわかりにくいという話があったので最初に整理しておきます。 R5RSにおいて、Schemeの正式な構文は 7.1節に、 基構文(lambda、if、set!、関数呼び出し、変数参照)のセマンティクスは 7.2

    Scheme:マクロ:CommonLispとの比較:意味論
    grafi
    grafi 2012/12/17
  • Scheme:多値

    多値の機能はR5RSになってから追加された、Schemeでは比較的新しい機能だ。 CommonLispやDylanにはある。 純粋な意味での多値、すなわちコンティニュエーションに一つ以上の値が渡るという意味での 多値を実装している言語は、メインストリームではあまり無いと思う。 ただ、多重代入(データストラクチャをdecomposeして複数の変数に代入する機能) があれば、ほとんど多値と同じことができる。RubyPythonにはこの機能がある。 そのため、多値の必要性に関しては大きな議論があり、Schemeコアな人々の中でも 意見が割れている。最近もcomp.lang.schemeで 大きなスレッドが立った。 個人的には多値はかなり頻繁に利用している。 このページでは主として使いどころに関していろいろ書いてみる。 突っ込み歓迎。 --Shiro 方法 - どうやって使う?現象 - どんな時

    Scheme:多値
    grafi
    grafi 2012/12/17