Lisp の 1 と '1 の違いは何ですか? 質問する

Lisp の 1 と '1 の違いは何ですか? 質問する

Lisp ではシンボルが数値になるかどうかについてはあまり考えたことがなかったので、今日はそれを試してみました。

> '1
1
> (+ '1 '1)
2
> (+ '1 1)
2
> (define a '1)
> (+ a 1)
2

上記のコードは Scheme ですが、Common Lisp や Clojure でもほぼ同じようです。1 と引用された 1 の間に違いはありますか?

ベストアンサー1

Common Lispでは、'1は(QUOTE 1)の省略形です。評価されると、(QUOTE何か)は、何か一部、評価されていません。ただし、評価された 1 つと評価されていない 1 つの間には違いはありません。

したがって、読者にとっては違いがあります。'1 は (QUOTE 1) と読み取られ、1 は 1 と読み取られます。ただし、評価すると違いはありません。

おすすめ記事