Тема: задачка для XLISP

Здравствуйте всем! У меня возникла проблема с написанием небольшой программки, не могли бы вы мне помочь? Суть в следующем:дан список чисел; составить 2 списка,содержащих положительные и отрицательные элементы исходного списка соответственно. У меня не получается сделать из одного списка два. Могу только сформировать либо список из положительных,либо из отрицательных элементов.
P.S.
Please help me!

Re: задачка для XLISP

(setq Sample '(1 -10 2 3 -4 5 6 1 0 -22))
(defun test (lst)
  (if lst
    ((lambda (rest)
       (if (< (car lst) 0)
     (list (cons (car lst) (car rest)) (cadr rest))
     (list (car rest) (cons (car lst) (cadr rest)))
       )
     )
      (test (cdr lst))
    )
    (list nil nil)
  )
)
(test Sample)

получим ((-10 -4 -22) (1 2 3 5 6 1 0))

Re: задачка для XLISP

Понимаю, что спасибо в карман не положишь, но всё равно большое спасиибо за программку.