我想(或多或少)將列表弄平。輸入是由嵌套的列表組成,可能會引用它,並且我希望在最後列出全局變量。我檢查first
是否以*
開頭,但我最終得到一個包含quote
的列表。檢查符號是否爲`quote`?
編輯:
我不得不處理的數據結構是這樣的:
(defparameter *colors* '(*red* *green* *blue*))
(defparameter *animals* '(*mouse* *elephant*))
(defparameter *list-to-flatten* '('*colors*
'*animals*
*some-other-parameter*))
我創造了像*red*
或*mouse*
基本參數名稱,因爲在原始數據的名字是不夠理想,但我仍然不得不使用它們與系統進行交互。這些參數是列表,即*mouse*
- >(animal mammal small 4)
,並且不被平坦化。所以我寫了一個函數,將嵌套列表簡化爲這些基本參數的列表,並且該列表包含引號。
從那時起,我看到我原來收到的數據過時了,我不得不重新開始。當前數據的參數名稱的命名更爲合理,因此我不需要再處理原始問題。
我已經重讀了答案here。
請給我們一些細節。你的意見是什麼?預期產出是多少?什麼是'*'與它有關係?從這裏給出的描述(和你的說法,其他SO問題與你的問題無關),我很難理解你想要做什麼以及問題可能是什麼。 – Dirk
你如何最終得到一個包含報價的列表?如果數據結構中有一個名爲'quote'的符號,則很明顯,生成的扁平列表將具有該符號。例如'(flatten'(a b'c)); ==>(a b quote c)'沒有錯,因爲數據avter評估中的第三個元素是'(quote c)',其中'quote'和'c'只是符號。 – Sylwester