1

「proc3」という名前のSchemeプロシージャを作成する必要があります。これは、2つの数値を引数(x、y)として取り、リストを引数として取り、入力リストと同じですがxが追加された新しいリストを返すプロシージャを返しますを最初の要素として、y を 2 番目の要素として追加します。

私はこれまでに (define proc3 (lambda ( xy) (lambda (list abc) (list xyc) ) ) )

インタープリターはそれをうまくコンパイルしますが、引数、つまり proc3( 1 2) を与えると、次のように表示されます: 定義前に識別子を参照することはできません。どういう意味ですか?

4

1 に答える 1

2

問題のコードは機能しません。これをソリューションのテンプレートとして使用します。リストは単なる別のパラメーターであることに注意してください (私はそれを と呼びましたlst)。たとえば、その要素を記述listして列挙する必要はありません。

(define proc3
  (lambda (x y)
    (lambda (lst)
      <add x y at head of lst>)))

の冒頭にxとを追加する方法の詳細を理解させます。テストするには、次のようにしてください。ylst

((proc3 1 2) '(3 4 5))
=> '(1 2 3 4 5)
于 2012-11-12T04:16:20.450 に答える