;;; travelCost.scm Dave Reed 9/04/08 ;;; ;;; (define MOVES '((Omaha --> Chicago 500) (Omaha --> Denver 600) (Chicago --> Denver 1000) (Chicago --> LosAngeles 2500) (Chicago --> Omaha 500) (Denver --> LosAngeles 1400) (Denver --> Omaha 600) (LosAngeles --> Chicago 2200) (LosAngeles --> Denver 1400))) (define DISTANCES '((Omaha (Omaha 0) (Chicago 500) (Denver 400) (LosAngeles 1700)) (Chicago (Chicago 0) (Omaha 500) (Denver 700) (LosAngeles 2000)) (Denver (Denver 0) (Omaha 400) (Chicago 700) (LosAngeles 1400)) (LosAngeles (LosAngeles 0) (Omaha 1700) (Chicago 2000) (Denver 1400)))) (define (GET-MOVES state) (define (get-help movelist) (cond ((null? movelist) '()) ((equal? state (caar movelist)) (cons (list (caddar movelist) (car (cdddar movelist))) (get-help (cdr movelist)))) (else (get-help (cdr movelist))))) (get-help MOVES)) (define (H state goalState) (cadr (assoc goalState (cdr (assoc state DISTANCES)))))