私はSchemeをはじめて学び、練習するために、すべての値が1である指定された長さのリストを返すプログラムを作成しようとしています。私はMIT Windowsの10上/ GNUエドウィン・エディタは、ここで私が入力したコードです:エドウィンスキームのバインドされていない変数
(define (listlength n)
(if (= n 1)
(list 1)
(append (list 1) (listlength (- n 1)))))
(listlength 5)
私は(1 1 1 1 1)
を返すためにC-x C-e
ために望んでいるだろうが、代わりに私が結合していない変数のエラーを取得:
;Unbound variable: listlength
;To continue, call RESTART with an option number:
; (RESTART 3) => Specify a value to use instead of listlength.
; (RESTART 2) => Define listlength to a given value.
; (RESTART 1) => Return to read-eval-print level 1.
;Start debugger? (y or n):
唯一の理由をIそれは私がdefinitでlistlengthを呼び出すのが好きではないということを考えることができますon listlength、しかしそれはScheme Schemeを作るものの一部であると考えられているので、???私は迷っている?あなたが私に与えることができる任意のおかげでありがとう!
スタックトレースを見ると、再帰呼び出しまたは元の呼び出しでエラーが発生していますか? – Barmar
関数定義を評価するのに 'C-x C-e'を使いましたか?あるいは '(listlength 5)'形式の最後で 'C-x C-e'だけを押しましたか? [manual](https://www.gnu.org/software/mit-scheme/documentation/mit-scheme-user/Edwin-Scheme-Evaluation.html#Edwin-Scheme-Evaluation)を参照してください。 – Renzo