Advertisement
Guest User

Untitled

a guest
Nov 7th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 2.51 KB | None | 0 0
  1. #lang racket
  2.  
  3. (define xs1 (list 1 2 3 4 5 6))
  4. (println xs1)
  5. (define xs2 (map (lambda (x) (* x x)) xs1))
  6. (println xs2)
  7. (define xs3 (filter even? xs2))
  8. (println xs3)
  9. (define x (apply + xs3))
  10. (println x)
  11.  
  12. (map + (list 1 2 3) (list 4 5 6))
  13. (map cons (list 1 2 3) (list 4 5 6))
  14. (map (lambda (x) (+ (car x) (cdr x))) (map cons (list 1 2 3) (list 4 5 6)))
  15.  
  16. (define maximum
  17.   (lambda (xs)
  18.     (apply max xs)
  19.    )
  20.  )
  21. (maximum (list 4 50 3))
  22.  
  23.  
  24. ;;;;;;;;;; 2
  25. (define (sum-of-odd-squares xs)
  26.   (define odd (filter odd? xs))
  27.   (define squares (map (lambda (x) (* x x)) odd))
  28.   (apply + squares)
  29.  )
  30. (println '(sum-of-odd-squares (list 3 5 8)))
  31. (sum-of-odd-squares (list 3 5 8))
  32. (println '(sum-of-odd-squares (list 2 4 6)))
  33. (sum-of-odd-squares (list 2 4 6))
  34.  
  35. (define (sum-of-odd-squares2 xs)
  36.   (define odd (filter odd? xs))
  37.   (define squares (map (lambda (x) (* x x)) odd))
  38.   (apply + squares)
  39.  )
  40.  
  41.  
  42. (define (my-foldl f x xs)
  43.   (if (null? xs)
  44.       x
  45.       (my-foldl f (f (car xs) x) (cdr xs))
  46.    )
  47.  )
  48.  
  49.  
  50.  
  51. (foldl cons '() (list 1 2 3))
  52. (my-foldl cons '() (list 1 2 3))
  53.  
  54.  
  55. ;;;;;;;;;; 3
  56. (define (insert-sorted x xs)
  57.    (if (null? xs)
  58.        (list x)
  59.        (if (<= x (car xs))
  60.            (cons x xs)
  61.            (cons (car xs) (insert-sorted x (cdr xs)))
  62.          )
  63.      )
  64.  )
  65. (insert-sorted 5 '())
  66. (insert-sorted 5 (list 1 2))
  67. (insert-sorted 5 (list 4 6))
  68.  
  69.  
  70. ;;;;;;;;;; 4
  71. (define my-sort
  72.   (lambda (xs)
  73.     (foldl insert-sorted '() xs)
  74.    )
  75.  )
  76. (my-sort (list 4 6 3 9 55 0))
  77.  
  78. (define my-sort2 (curry foldl insert-sorted '()))
  79. (my-sort2 (list 4 6 3 9 55 0))
  80.  
  81.  
  82. ;;;;;;;;;; 5
  83. (define (dedup xs)
  84.   (define (insert-if-not-present x xs)
  85.     (if (member x xs)
  86.         xs
  87.         (append xs (list x))
  88.      )
  89.     )
  90.   (foldl insert-if-not-present '() (list 1 1 2 2 2 3))
  91.  )
  92. (dedup '(1 1 2 2 2 3))
  93.  
  94.  
  95. (define (dedup2 xs)
  96.   (if (null? xs)
  97.       xs
  98.       (let ((first (car xs)))
  99.         (cons first (dedup2 (filter (lambda (x) (not (= x first))) (cdr xs))))
  100.        )
  101.     )
  102.  )
  103. (dedup2 '(1 1 2 2 2 3))
  104.  
  105.  
  106. ;;;;;;;;;; 1
  107. (define (my-curry f x) (lambda (y) (f x y)))
  108. (define plus2 (my-curry + 2))
  109. (plus2 5)
  110.  
  111. (define my-identity (lambda (x) x))
  112. (my-identity 10)
  113.  
  114. (define (my-compose f g)
  115.   (lambda (x)
  116.     (f (g x))
  117.    )
  118.  )
  119. ((my-compose (lambda (x) (* x x)) (lambda (x) (* x 2))) 2)
  120.  
  121.  
  122. (define (my-negate p?) (compose not p?))
  123.  
  124. (define (repeatf f n)
  125.   (if (= 0 n)
  126.       my-identity
  127.       (compose f (repeatf f (- n 1)))
  128.    )
  129.  )
  130.  
  131. (define sq-3 (repeatf (lambda (x) (* x x)) 3))
  132. (sq-3 2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement