16得票3回答
在Clojure中协调嵌套语法引用中的自动生成符号。

在Clojure中,您需要使用gensym为宏内部使用创建符号以使其保持卫生。然而,有时您需要在嵌套的语法引用中使用相同的符号。例如,如果我想要将一个值绑定到一个符号上并在展开的循环中打印它三次,则可以执行以下操作:`(let [x# 1] ~@(repeat 3 ...

13得票1回答
如何将对话数据拆分成(上下文,回复)的一对

我正在使用Gensim Doc2Vec模型,尝试对客户支持对话的部分进行聚类。我的目标是为支持团队提供自动回复建议。图1:显示了一个示例对话,在下一个对话线中回答用户问题,使得数据提取变得容易: 在对话期间,“hello”和“我们的办公室位于纽约”应该被建议图2:描述了一个问题和答案不同步的对...

12得票2回答
未内部化符号

我对Common Lisp有些不理解。 假设我要编写一个类似于以下代码的宏: (defmacro test-macro () (let ((result (gensym))) `(let ((,result 1)) (print (incf ,res...

8得票2回答
如何测试使用gensyms的Clojure宏?

我想测试一个使用gensyms的宏。例如,如果我想测试这个: (defmacro m1 [x f] `(let [x# ~x] (~f x#))) 我可以使用宏扩展... (macroexpand-1 '(m1 2 inc)) ...获得... (clojure....