Closed larsen closed 9 years ago
Apply fails when trying to evaluate
(map 'fact '(1 2 3))
where
(define map (lambda (f lst) (cons (f (car lst)) (map f (cdr lst))))) evalExpr ( "f" ( "car" "lst" ) ) in "f" -> "fact" "fact" -> (λ ( "n" ) ( (if "n" ( '*' "n" ( "fact" ( '-' "n" 1 ) ) ) 1) ) ) "lst" -> ( 1 2 3 ) "map" -> (λ ( "f" "lst" ) ( ( "cons" ( "f" ( "car" "lst" ) ) ( "map" "f" ( "cdr" "lst" ) ) ) ) ) "sqr" -> (λ ( "n" ) ( ( '*' "n" "n" ) ) ) apply in "f" -> "fact" "fact" -> (λ ( "n" ) ( (if "n" ( '*' "n" ( "fact" ( '-' "n" 1 ) ) ) 1) ) ) "lst" -> ( 1 2 3 ) "map" -> (λ ( "f" "lst" ) ( ( "cons" ( "f" ( "car" "lst" ) ) ( "map" "f" ( "cdr" "lst" ) ) ) ) ) "sqr" -> (λ ( "n" ) ( ( '*' "n" "n" ) ) )
THIS IMPLEMENTATION OF MAP IS WRONG
Apply fails when trying to evaluate
where