6

l が次のように定義されているとします。

> (define l (list 1 2 3))

l は現在、アトムのリストにバインドされています。

Little Schemer では、lat? という単純な関数を紹介します。アトムのリストとしての引数の分類に応じて #t または #f に評価されます。例えば、

> (lat? l)

l は 3 つのアトムのリストであるため、 #t と評価される必要があります。

ただし、lat? を呼び出すように求められたときに、スキーム インタープリター ( repl.it ) がエラーをスローします。

> (lat? l)
Error: execute: unbound symbol: "lat" []

緯度を仮定するのは間違っていますか?はSchemeにとって原始的ですか?

また、その場合の再投稿はご容赦ください。

4

2 に答える 2

13

緯度?本の早い段階で定義されています。19ページをご覧ください。

(define lat?
  (lambda (l)
    (cond
      ((null? l) #t)
      ((atom? (car l)) (lat? (cdr l)))
      (else #f))))

この本は、関数が何をする必要があるか、慣れるまでにかかるかもしれない会話形式で生成する必要がある出力を指定しています。

于 2016-02-24T20:54:15.390 に答える
2

これはばかげた質問であることがわかります。テキストは、読者に定義を考案するように要求します。誰かが興味を持っている場合の答えは次のとおりです。

(define lat?
  (lambda (l)
    (cond
      ((null? l) #t)
      ((atom? (car l)) (lat? (cdr l))
      (else #f))))
于 2016-02-24T20:54:31.673 に答える