私はスキームで次のようなリストを作成しようとしています: (list 'quote 'a) そして、出力が (quote a) になることを期待していますが、インタープリターは引用を実行し、出力は次のとおりです: 'a
期待される出力を得るためにコードを書くにはどうすればよいですか?
'a
式は list の省略形で(quote a)
あり、インタープリターのプリンターはその省略形を出力に使用しているため、そうあるべきです。インタプリタに evaluate を指示すると、アポストロフィが付けられ'a
ずに出力されることに注意してください。a
の一部を取り出してみると(list 'quote 'a)
、期待どおりのリストが得られることがわかります。
> (車 (list 'quote 'a)) 見積もり > (cadr (list 'quote 'a)) a
したがって、要約すると、期待される表現ではなく、期待される出力が得られます。output として取得することを本当に要求する場合は(quote a)
、インタープリターのドキュメントを調べて、それがサポートされているかどうかを確認する必要があります。または、リストを印刷するために独自の手順を作成する必要がある場合もあります。
どの実装を使用していますか。REPL が sexp を出力する方法を変更する方法は、スキームの実装と、実装が展開された形式での sexp の書き込みをサポートしているかどうかによって異なります。