Advertisement
Guest User

Untitled

a guest
Dec 21st, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.47 KB | None | 0 0
  1. (defun take (n list)
  2. (if (= n 0) NIL (cons (car list) (take (- n 1) (cdr list)))))
  3.  
  4. (defun slice(n list)
  5. (if (equal list NIL) NIL (cons (take n list) (slice n (nthcdr n list)))))
  6.  
  7. (defun msort(list pred)
  8. (cond ((not (consp (car list)))
  9. (msort (slice 1 list) pred))
  10. ((equal (cdr list) NIL)
  11. (car list))
  12. (t
  13. (msort (mapcar (lambda (l) (merge 'list (car l) (cadr l) pred))
  14. (slice 2 list))
  15. pred))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement