Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here


Quick sort Lisp

Quick sort Lisp

Quick sort Lisp

Hello, I have one doubt about this algorithm of quick sort.

(defun qsort (lst cmp / x y l e g)
   (if lst
       (setq x (nth (/ (length lst) 2) lst))
       (foreach y lst
          ((equal y x)
            (setq e (cons y e)))
          ((apply cmp (list y x))
            (setq l (cons y l)))
          (T (setq g (cons y g)))
       (append (qsort l cmp) e (qsort g cmp))

The definition of the function is: (defun qsort (lst cmp / x y l e g), that is, 8 parameters.

Why does the function receive only two parameters when it is called recursively?---> (append (qsort l cmp) e (qsort g cmp))

Thank you very much.

RE: Quick sort Lisp

It looks like an error to me. There's also a possibility that it's not actually common lisp, but another lisp variant. FOREACH isn't defined as common lisp, either - usually one would use DOLIST.


RE: Quick sort Lisp

Thank you very much azimuth0.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close