- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在体验 Clojure 练习的乐趣,并遇到了这个示例
(defn build-contract [c]
(let [args (first c)]
(list
(into '[f] args) ;; here is where i am confused
(apply merge
(for [con (rest c)]
(cond (= (first con) :require)
(assoc {} :pre (vec (rest con)))
(= (first con) :ensure)
(assoc {} :post (vec (rest con)))
:else (throw (Exception. (str "Unkown tag " (first con)))))))
(list* 'f args)))) ;; and here
(defn collect-bodies [forms]
(for [form (partition 3 forms)]
(build-contract form)))
(defmacro contract [cg & forms]
(list* `fn cg (collect-bodies forms)))
我似乎无法理解为什么你想要在该向量中使用一个名为 f 的符号。符号是对事物的引用,那么 f 会引用什么呢?为什么我们需要引用它?
最佳答案
该宏构建一个函数文字表达式(fn
形式)。
(into '[f] args) ;; here is where i am confused
这是参数向量。 f
在这里出现,充当形式论证的角色。
(list* 'f args)))) ;; and here
这是函数应用程序。 f
是一个函数参数,在这里它应用于 args
。
构建后,生成的定义将如下所示。
(fn name [f arg1 arg2] ... (f arg1 arg2))
关于macros - Clojure 的乐趣,宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760362/
我真的无法在任何地方找到此信息。实际上,我找到了一个地方,每个 db 调用都在一个 js 脚本中。 有人可以澄清一下我是否应该运行这个: var config = { apiKey: "AAAPPPI
//编辑 我想在切换状态和返回状态后保存生命值、金币、乐趣值。 我创建了游戏对象/数组: game.yourGameData = {}; game.yourGameData.health = 100;
输入字符串: Lorem ipsum tip. Lorem ipsum loprem ipsum septum #match this#, lorem ipsum #match this too#.
假设我想创建一个动态库 dynamic.so,但我的代码引用了某个其他静态库 static.a 中存在的函数。自然地,如果我使用 g++ 和 -shared 选项进行编译和链接,dynamic.so
远程节点位于不同的机器上。 我从本地节点测试: $ erl -name foobar Erlang/OTP 17 [erts-6.2] [source] [64-bit] [smp:2:2] [asy
我正在对使用 NHibernate 实现持久性的类库进行单元测试。 NHibernate 正在使用 Sqlite 内存数据库进行测试。在正常情况下,很容易让 StructureMap 为我踢出一个 s
在我看来,私有(private)函数只能在类内部访问,但在我的示例中,以下代码 bindPreferenceSummaryToValue(findPreference("RestoreItem"))
mysql_query("INSERT INTO dictionary ('word', 'definition') VALUES ('".$word."','".$definition."');")
两者在执行上有什么区别吗? launch { function1() } fun function1(){ DoSomething... } 和 launch { functio
能否建议我如何处理多个 anchor 标记以实现点击功能? 我的代码是这样的: test1 test2 我的 jQuery 功能是: $('a').click(function(event) {
我是一名优秀的程序员,十分优秀!