我想在通用lisp中執行一個宏,該宏應該在其參數之一中包含由插槽和字符串組成的列表。原型如下:處理插槽和字符串列表中的值
(defclass time-info()
((name :initarg name)
(calls :initarg calls)
(second :initarg second)
(consing :initarg consing)
(gc-run-time :initarg gc-run-time)))
(defun print-table (output arg-list time-info-list)())
想法是打印一個基於定義其結構的arg-list的表。這是一個函數調用的示例:
(print-table *trace-output*
'("|" name "||" calls "|" second "\")
my-time-info-list)
這將在trace輸出的ascII中打印一張表格。問題是,我不知道如何明確地獲取列表中的元素,以便在我的宏的不同部分中使用它們。
我不知道如何做到這一點,但我相信它可以做到。也許你可以幫我:)
爲什麼要在一個宏,而不是一個功能?數組的ASCII表示?哪個陣列? –
':initarg'通常是關鍵字,您應該爲插槽定義訪問器或讀取器。 – Svante