[英]how to pass a gensym to a function name in common lisp
我正在使用 Lucerne 構建一個 api,並嘗試根據列表(它們是非常簡單的端點)生成這些 api。 問題是(gensym)
使用的視圖只是函數,所以如果我在運行時將(gensym)
傳遞給宏,則該視圖函數的名稱只是設置為(gensym)
(或者它失敗了,不記得是哪個)。
我想在一個宏中動態命名一組這些視圖函數,該宏將處於某種循環中,每次運行宏擴展的代碼時,函數都有一個新名稱(所以如果我只使用每次運行宏時的標准gensym
每個函數將始終具有相同的名稱,並相互覆蓋)。 有沒有辦法做到這一點?
您可能希望使用intern
創建“公共”符號(用戶將按名稱調用)和“私有”符號(存儲在某處)的make-symbol
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.