Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. ;;Die Funktion merge verbindet 2 sortierte listen zu einer sortierten liste.
  2. ;;[merge]:(list-of-numbers list-of-numbers)->(list-of-numbers)
  3. (check-expect (merge (list 1 2 3 4) (list 1 2 3 4)) (list 1 1 2 2 3 3 4 4))
  4. (check-expect (merge (list 3 4) (list 1 2 8)) (list 1 2 3 4 8))
  5. (check-expect (merge empty (list 1 2 8)) (list 1 2 8))
  6. (check-expect (merge (list 1 2 8) empty) (list 1 2 8))
  7.  
  8. (define merge-one-element
  9. (lambda [z lon2]
  10. (cond
  11. [(> z (first lon2)) (append (list (first lon2)) (merge-one-element z (rest lon2)))]
  12. [(<= z (first lon2)) (cons z lon2)])))
  13.  
  14. (define merge
  15. (lambda [lon1 lon2]
  16. (cond
  17. [(and (empty? lon1) (empty? lon2)) '()]
  18. [(empty? lon1) lon2]
  19. [(empty? lon2) lon1]
  20. [else (merge (rest lon1) (merge-one-element (first lon1) lon2))])))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement