我注意到這個函數叫做rec
在Common Lisp代碼中出現很多次,但我沒有找到它實際上在做什麼的引用。任何人都可以向我解釋它是什麼?例如,它會出現在一些代碼從另一個問題,How to convert a flat list into a nested tree-like structure?:未標記的函數在帶標籤的Common Lisp源中稱爲rec?
(defun mimicry (source pattern)
(labels ((rec (pattern)
(mapcar (lambda (x)
(if (atom x)
(pop source)
(rec x)))
pattern)))
(rec pattern)))
請顯示更多背景。給整個程序使用它。 'rec'可能是本地的或特定於該程序的。 – 2014-10-05 19:38:25
如果你看[這個例子](http://stackoverflow.com/a/24750461/1565698),你會看到'rec'被用作'labels'形式的本地函數名稱。如果你在任何地方將它改爲「香蕉」,它仍然可以工作,但是'rec'表示這是一個遞歸調用。在尾遞歸的情況下,有些使用名稱'loop',但它會使'loop'宏在相同範圍內不受影響,所以在Scheme中可能比CL更常見。 – Sylwester 2014-10-05 20:30:03
@Sylwester我沒有添加太多的信息,認爲'rec'是lisp中使用的常用函數,但不知何故,只是不適合在線記錄。我用示例中的示例代碼更新了我的線程。你能告訴我這個'rec'函數是什麼,它究竟在做什麼? – dk123 2014-10-05 22:02:52