0

リスト pl (入力形式については以下を参照) から多項式を読み取り、それをソート済みリストとして返します。

例:(ReadPolynomial2 '(99 0 17 200 3 150 8 200 0 0))返すべき((99 0) (3 150) (25 200))

4

1 に答える 1

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))))
于 2013-02-10T02:44:42.397 に答える