Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; przykład
- (define fact-in-expr
- (letrec-expr 'fact (lambda-expr 'n
- (if-expr (op '= (const 0) (variable 'n))
- (const 1)
- (op '* (variable 'n)
- (app-expr (variable 'fact)
- (op '- (variable 'n)
- (const 1))))))
- (app-expr (variable 'fact)
- (const 5))))
- (define map-in-expr
- (letrec-expr 'map (lambda-expr 'xs
- (if-expr (null?-expr (cdr-expr (variable 'xs)))
- (null-expr)
- (cons-expr (app-expr (car-expr (variable 'xs)) (car-expr (cdr-expr (variable 'xs))))
- (app-expr (variable 'map)
- (cons-expr (car-expr (variable 'xs))
- (cdr-expr (cdr-expr (variable 'xs))))))))
- (app-expr (variable 'map)
- (cons-expr (letrec-expr 'fact (lambda-expr 'n
- (if-expr (op '= (const 0) (variable 'n))
- (const 1)
- (op '* (variable 'n)
- (app-expr (variable 'fact)
- (op '- (variable 'n)
- (const 1))))))
- (variable 'fact))
- (cons-expr (const 3)
- (cons-expr (const 5)
- (cons-expr (const 7)
- (null-expr))))))))
- (define append-in-expr
- (letrec-expr 'append (lambda-expr 'xs
- (if-expr (null?-expr (car-expr (variable 'xs)))
- (cdr-expr (variable 'xs))
- (cons-expr (car-expr (car-expr (variable 'xs)))
- (app-expr (variable 'append)
- (cons-expr (cdr-expr (car-expr (variable 'xs)))
- (cdr-expr (variable 'xs)))))))
- (app-expr (variable 'append) (cons-expr (letrec-expr 'map (lambda-expr 'xs
- (if-expr (null?-expr (cdr-expr (variable 'xs)))
- (null-expr)
- (cons-expr (app-expr (car-expr (variable 'xs)) (car-expr (cdr-expr (variable 'xs))))
- (app-expr (variable 'map)
- (cons-expr (car-expr (variable 'xs))
- (cdr-expr (cdr-expr (variable 'xs))))))))
- (app-expr (variable 'map)
- (cons-expr (letrec-expr 'fact (lambda-expr 'n
- (if-expr (op '= (const 0) (variable 'n))
- (const 1)
- (op '* (variable 'n)
- (app-expr (variable 'fact)
- (op '- (variable 'n)
- (const 1))))))
- (variable 'fact))
- (cons-expr (const 3)
- (cons-expr (const 5)
- (cons-expr (const 7)
- (null-expr)))))))
- (letrec-expr 'map (lambda-expr 'xs
- (if-expr (null?-expr (cdr-expr (variable 'xs)))
- (null-expr)
- (cons-expr (app-expr (car-expr (variable 'xs)) (car-expr (cdr-expr (variable 'xs))))
- (app-expr (variable 'map)
- (cons-expr (car-expr (variable 'xs))
- (cdr-expr (cdr-expr (variable 'xs))))))))
- (app-expr (variable 'map)
- (cons-expr (letrec-expr 'fact (lambda-expr 'n
- (if-expr (op '= (const 0) (variable 'n))
- (const 1)
- (op '* (variable 'n)
- (app-expr (variable 'fact)
- (op '- (variable 'n)
- (const 1))))))
- (variable 'fact))
- (cons-expr (const 3)
- (cons-expr (const 5)
- (cons-expr (const 7)
- (null-expr)))))))))))
- (run map-in-expr (env-empty))
- (run append-in-expr (env-empty))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement