Sorting algorithms/Insertion sort: Difference between revisions

Content deleted Content added
Epsilon (talk | contribs)
Haskell Example
Epsilon (talk | contribs)
Added CL version
Line 12:
 
Writing the algorithm for integers will suffice.
 
=={{header|Common Lisp}}==
(defun span (predicate list)
(let ((tail (member-if-not predicate list)))
(values (ldiff list tail) tail)))
(defun less-than (x)
(lambda (y) (< y x)))
(defun insert (list elt)
(multiple-value-bind (left right) (span (less-than elt) list)
(append left (list elt) right)))
(defun insertion-sort (list)
(reduce #'insert list :initial-value nil))
 
 
=={{header|Haskell}}==