(setq l2 '(1 (2 b (c 1 b))(a (1 2) d)))
(defun drumuri (l3)
(cond ((atom l3) (cons l3 nil))
(t (append
(cons (car l3) nil)
(drumuri (cadr l3))
(cons (car l3) nil)
(drumuri (caddr l3))))))
(drumuri l2)
,這讓我:
Break 2
[4]> DRUMURI
Break 2
[4]> (1 2 B 2 C 1 C B 1 A 1 2 1 NIL A D)
,但我需要:
((1 2 B)(1 2 C 1)(1 2 C B)(1 A 1 2)(1 A D))
好了好消息,我發現了一些答案:
(setq l2 '(1 (2 b (c 1 b))(a (1 2) d)))
(defun drumuri (l3)
(cond ((atom l3) (cons l3 nil))
(t (append (cons (car l3) nil)
(drumuri (cadr l3))))))
(drumuri l2)
和答案是:
[1]>
(1 (2 B (C 1 B)) (A (1 2) D))
[2]>
DRUMURI
[3]>
(1 2 B)
接下來是第二個答案:
(defun drumuri (l4)
(cond ((atom l4)(cons l4 nil))
(t (append (cons (car l4)nil)
(drumuri (caddr l4))))))
(drumuri l2)
和這個問題的答案是:
[1]>
(1 (2 B (C 1 B)) (A (1 2) D))
[2]>
DRUMURI
[3]>
(1 A D)
所以所有剩下的就是找到:
(1 2 C 1)(1 2 CB)(1 A 1 2)
請格式化您的代碼並用空格替換選項卡 - 選擇文本並按下編輯器上的「101010」按鈕。 – 2010-05-14 17:34:54
編程Lisp時,縮進對於清晰度非常重要。我已經爲你解決了這個問題,但請保持對未來的關注。 – 2010-05-15 05:43:09
謝謝 但你能幫我們編碼 – iulia 2010-05-15 06:01:02