DoromaAnim

2

May 29th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. #lang racket
  2.  
  3. (define/contract (filter f xs)
  4. (parametric->/c [a] (-> (-> a boolean?) (listof a) (listof a)))
  5. (if (null? xs)
  6. null
  7. (if (f (car xs))
  8. (cons (car xs) (filter f (cdr xs)))
  9. (filter f (cdr xs)))))
  10.  
  11. (filter odd? '(1 2 3 4 5 6 7 8 9))
  12.  
  13. (define (contains a xs)
  14. (member a xs))
  15.  
  16. (define (count a xs)
  17. (if (null? xs)
  18. 0
  19. (if (equal? a (car xs))
  20. (+ 1 (count a (cdr xs)))
  21. (count a (cdr xs)))))
  22.  
  23. (define (all-inside xs f)
  24. (lambda (y)
  25. (define (iter xs)
  26. (if (null? xs)
  27. #t
  28. (if (and (f (car xs)) (not (contains (car xs) y)))
  29. #f
  30. (iter (cdr xs)))))
  31. (define (iter2 xs ys);;zmienic na contains
  32. (if (null? xs)
  33. #t
  34. (if (not (= (count (car xs) ys) (count (car xs) xs)))
  35. #f
  36. (iter2 (cdr xs) ys))))
  37. (and (iter xs) (iter2 y xs))))
  38.  
  39. (define/contract (filter2 f xs)
  40. (->i ([f procedure?]
  41. [x (listof any/c)])
  42. [result (f x) (and/c list?
  43. (all-inside x f))])
  44. (if (null? xs)
  45. null
  46. (if (f (car xs))
  47. (cons (car xs) (filter2 f (cdr xs)))
  48. (filter2 f (cdr xs)))))
  49.  
  50. (filter2 odd? '(1 2 3 4 5 6 7))
Add Comment
Please, Sign In to add comment