Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

Execute LISP Online

(defun evensplit (alist len) (if (> (length alist) (/ len 2))
    (append (evensplit (cdr alist) len) (list (car alist)))
    (list alist)
))

(defun sorter (arglist larger?)
    (merger
        (mergesort (car arglist) larger?)
        (mergesort (cdr arglist) larger?)
        larger?
    )
)

(defun merger (listA listB larger?) 
    (cond
        ((not (and listA listB)) (append listA listB))
        ((eval (list larger? (car listA) (car listB))) (cons (car listA) (merger (cdr listA) listB larger?)))
        (T (cons (car listB) (merger listA (cdr listB) larger?)))
    )
)

(defun mergesort (sortlist larger?) 
    (cond
        ((< (length sortlist) 2) sortlist)
        (T (sorter (evensplit sortlist (length sortlist)) larger?))
    )
)

(defun numlarge? (numA numB) (> (- numA numB) 0))

(print (mergesort '(3 9 5 7 6 1 8 0 2 4) 'numlarge?))

Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.