1

なぜ(quote '"foo")Schemeインタプリタを通過するのですか? これは、Scheme で式がどのように構築されるかに基づいて、構文的に冗長であるか間違っているはずです。quoteスキームが変数であると考えずにシンボルを使用したいときはいつでも使用され、文字列 有効なシンボルではありませんquote。奇妙なことに十分(quote '"foo")に戻ります(quote "foo")冗長性?

別の奇妙な実験(symbol? '"foo")が評価され#f、引用符で囲まれた文字列がまだ記号ではないことが証明されます(ステートメントで引用符がそのように機能する場合)。それで、'文字列では無視されますか、それとも他の場所で何らかの目的を果たしますか? チキンスキームを使用しています。

やや些細なことですが、同時に気が遠くなるようなものです。

4

1 に答える 1

3

仕様に記載されているとおり:

(quote <datum>)によって表されるデータム値に評価されます (セクション 4.3 を参照)。この表記法は、定数を含めるために使用されます。

上記は文字列の引用を除外するものではありません。実際、そのセクションの例の 1 つが次のとおりです。

'"abc" => "abc"

したがって、これも有効です。

''"abc" => ''"abc"
于 2013-03-18T16:16:27.587 に答える