2

目的地と BST 形式のマップの 2 つのパラメーターを使用する Lisp プログラムを作成しました。BST で宛先番号を検索し、宛先が見つかった場合は (found: path) を出力します。見つからない場合は印刷するはずですが(見つかりませんでした:宛先)、何らかの理由で契約違反が発生しています。それは私のコンドミニアムを正しく通り抜けていません、そして私はそれを30分間いじっています. 誰でも助けることができます。

これが私のプログラムです:

(define (robot goal map)
  [code hidden for university honour code purposes]

; Test robot function
(robot 64 '(53 () (64 () ())))
(robot 4 '(53 () (64 () ())))
4

1 に答える 1

1

手順に 1 つのケースがありません(define (robot map path) ...)mapパラメータが の場合はどうなりますnullか? 次のように修正します。

(define (robot map path)
  (cond ((not (null? map))
         [code hidden for university honour code purposes])
        (else '()))) ; this line was missing!

前回の質問への回答で述べたのとまったく同じです。リストまたはツリーのどちらをトラバースしているかに関係なく、常に最初に考慮すべきケースは次のとおりです。null の場合はどうなりますか?

于 2013-04-24T21:41:22.603 に答える