私はスキームを使い始めていますが、何が間違っているのか分かりません。Schemeのifステートメントで引数を渡すとエラーが発生する
(let ((fn (car last-elem))
(output(if (> (length last-elem) 1) ;or = needed?
(cdr last-elem)
('()))))
(cond ((equal? fn 'dim) (dim output))
((equal? fn 'print) (print output))
このコードは、私のテストケースのこんにちは、世界、印刷する文を生成し、それを通過することになっています!
印刷が今である(それは後でので、私は新しい機能が必要ですより多くのものを持っています)ちょうどこの:と
(define (print args)
(display(args))
(newline)
このエラーアウト:
アプリケーション:ない手順。 ... [なし] コンテキスト::(「こんにちは、世界!」) 引数...: は、引数に適用することができ手続き 与えられた期待私はライト・トラック上だと思う
を、私が得たいと思っている出力は、「与えられた」ものであるからです。しかし、私はそれを印刷するだけです。
このエラーについては、他にもいくつか質問がありますが、その解決策は私には役に立たなかったと思います。
ありがとうございます。
「dim」と「last-elem」とは何ですか? –
dimが現在使用されていないという質問に手順がない場合、last-elemはリストの最後の要素です。プログラムの全体的な目的は、愚かな基本的な通訳であり、プログラムを受け取り実行することです。問題のプログラムは単に「こんにちは、世界!」と印刷するだけです。だからこそ私は他のすべてのものが働いていると確信している。私はスキームはあまりよく分からないので、ここではほとんど推測をしています。 –
未使用の部品を取り除くことから始めます。さもなければ、コードはコンパイルされません。現在スコープに含まれていない変数またはプロシージャは参照できません。 –