Guest User

Untitled

a guest
Nov 29th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 1.39 KB | None | 0 0
  1. (define (smallest list1)
  2.  
  3.  
  4.   (cond ((null? list1) '())
  5.  
  6.  
  7.     ((null? (cdr list1)) (car list1))
  8.  
  9.    
  10.    ((< (car list1) (cadr list1)) (smallest (rmv (cadr list1) list1)))
  11.  
  12.  
  13.       (else (smallest (cdr list1)))))
  14.  
  15.  
  16.  
  17.    
  18.  
  19. (define (sort list1 list2)
  20.  
  21.  
  22.   (cond ((null? list1) '())
  23.  
  24.  
  25.         ((null? (cdr list1)) (append list2 (list (car list1))))
  26.  
  27.  
  28.         (else (sort (rmv (smallest list1) list1) (append list2 (list (smallest list1)))))))
  29.  
  30.    
  31.  
  32.  
  33. (define (getsorted list1)
  34.  
  35.  
  36.   (sort list1 '())
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. (define (rem a list1 list2)
  45.  
  46.  
  47.   (cond ((null? list1) list2)
  48.      
  49.  
  50.      ((= a (car list1)) (rem a (cdr list1) list2))
  51.  
  52.  
  53.      (else (rem a (cdr list1) (append list2 (list (car list1)))))))
  54.  
  55.  
  56.  
  57.        
  58. (define (rmv a list1)
  59.  
  60.  
  61.  (rem a list1 '()))
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. (define (merge list1 list2 list3)
  69.  
  70.  
  71.   (cond ((and (null? list1) (null? list2)) list3)
  72.  
  73.  
  74.       ((null? list1) (append list3 list2))
  75.  
  76.  
  77.       ((null? list2) (append list3 list1))
  78.  
  79.  
  80.       ((< (car list1) (car list2)) (merge (cdr list1) list2 (append list3 (list (car list1)))))
  81.    
  82.  
  83.       ((= (car list1) (car list2)) (merge (cdr list1) (cdr list2) (append list3 (list (car list1)) (list (car list2)))))
  84.  
  85.  
  86.       (else (merge list1 (cdr list2) (append list3 (list (car list2)))))))
  87.  
  88.  
  89.  
  90.  
  91. (define (getmerged list1 list2)
  92.  
  93.  
  94.  (merge (getsorted list1) (getsorted list2) '()))
Add Comment
Please, Sign In to add comment