2012-09-26 29 views
0

從列表pl讀取多項式(請參閱下面的輸入格式)並將其作爲排序列表返回。在lisp中從輸入流讀取多項式

舉例:(ReadPolynomial2 '(99 0 17 200 3 150 8 200 0 0))應該返回((99 0) (3 150) (25 200))

+2

哇,你甚至沒有複製所有的考試 – wroniasty

+0

我需要儘快做到這一點..我沒有Lisp知識,上週我因發燒而失望,所以無法工作 –

+0

這不是考試。應該添加相同程度的數字(係數)並顯示出來。 –

回答

0

我不知道你是否還需要它,但在這裏它是一個可能的解決方案:

(defun ReadPolynomial2 (lst) 
    (let ((even-positions (loop for p in (cdr lst) by #'cddr collect p))) 
    (loop for p in (remove-duplicates even-positions) 
      collect (list (loop for x on lst by #'cddr 
           when (= p (second x)) 
           sum (first x)) p))))