良い本やSchemeのチュートリアルを読むことをお勧めします.Schemeでコーディングを始める前に、よく理解しておくべき最も基本的な概念の説明を求めています. たとえば、この章は素晴らしい出発点です。私はあなたの質問に対処します:
私consはペアを構築するためのものであることを知っています(cons 2 (cons 3 empty))
実際、好きなもののペアを作ることができます…数字のペア、ペアのペア、名前を付けてください。
consしかし、ここでafterを使用するコードがわかりませんempty。
この場合、emptyは空のリストを意味します'()。したがって、最初の要素がアトム (この場合は数値) で、2 番目の要素が空のリストであるペアを構築できます。これが、Scheme で適切なリストを構築する方法です!
cons数字のために構築されていませんか?
いいえ、それは他のペアを含むあらゆるペアを構築するためのものです。
どのconsように2つの引数を取ることができますか? それらが 2 つの引数を取ることができる場合、それらをどのように評価しますか?
そして、なぜですか?すでに述べたように、ペアconsを構築するためのものです。ペアは 2 つのもので構成されるため、2 つの引数を取ります。それぞれを順番に評価し、それらをくっつけてペアを形成します。本当に、本当にドキュメンテーションを読むべきです。cons
そして、誰かがコードを翻訳して[(empty? lst) empty]ください
これは、再帰的にトラバースしているリストが空であるかどうかを尋ねているだけです。空である場合は、空のリストを返します。これは、リストを返す再帰プロシージャの基本ケースです。この手順は結果として単純にリストを作成するだけです。これはcons要素をペアに変換するためであり、最後のペアは空のリストで終了し、適切なリストが生成されます。基本的に、Scheme でリストを作成する方法は次のとおりです。
(cons 1 (cons 2 (cons 3 empty)))
=> '(1 2 3)