Advertisement
Guest User

Untitled

a guest
Oct 4th, 2015
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1.  
  2. #lang racket
  3.  
  4. (define (partition good? list return)
  5. (match list
  6. [(list)
  7. (return `() `())]
  8.  
  9. [(list head tail ...)
  10. (partition good? tail (λ (accepted rejected)
  11. (if (good? head)
  12. (return (cons head accepted) rejected)
  13. (return accepted (cons head rejected)))))]))
  14.  
  15. (partition (curry < 4) `(1 9 2 8 3 7 4 6 5) (λ (good bad)
  16. (printf "good: ~a; bad ~a~%" good bad)))
  17.  
  18. (define (split-at n list return)
  19. (if ((zero? n) . or . (null? list))
  20. (return `() list)
  21. ; else
  22. (match list [(list head tail ...)
  23. (split-at (n . - . 1) tail
  24. (λ (before after)
  25. (return (cons head before) after)))])))
  26.  
  27. (split-at 5 `(1 2 3 4 5 6 7 8 9) (λ (before after)
  28. (printf "before: ~a; after ~a~%" before after)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement