Advertisement
Guest User

Untitled

a guest
Apr 20th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.29 KB | None | 0 0
  1. ;; APPEND
  2. (define my-append
  3.   '(lambda-rec (append xs ys) (if (null? xs)
  4.                                   ys
  5.                                   (cons (car xs) (append (cdr xs) ys)))))
  6.  
  7. (define append-test (list my-append '(cons 1 (cons 2 null)) '(cons 3 (cons 4 null))))
  8.  
  9. ;; MAP
  10. (define my-map
  11.   '(lambda-rec (map proc args) (if (null? args)
  12.                                   null
  13.                                    (cons (proc (car args))
  14.                                          (map proc (cdr args))))))
  15.  
  16. (define map-test (list my-map '(lambda (x) (* x x)) '(cons 2 (cons 3 (cons 4 null)))))
  17.  
  18. ;; REVERSE
  19. (define my-reverse
  20.   '(lambda-rec (reverse xs) (let (append (lambda-rec (append xs ys) (if (null? xs)
  21.                                                                          ys
  22.                                                                          (cons (car xs) (append (cdr xs) ys)))))
  23.                               (if (null? xs)
  24.                                   null
  25.                                   (append (reverse (cdr xs))
  26.                                           (cons (car xs) null))))))
  27.  
  28. (define reverse-test (list my-reverse '(cons 1 (cons 2 (cons 3 (cons 4 null))))))
  29.  
  30. ;;TESTY:
  31. ;-append
  32. (eval append-test)
  33. ;-map
  34. (eval map-test)
  35. ;-reverse
  36. (eval reverse-test)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement