问题标签 [defn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
function - 如何从 Clojure 中的字符串定义函数?
我想这样做(在 REPL 或任何地方)
然后能够做到
或者,如果有任何其他方法可以从宏中的自定义字符串创建 defn,您能否将我推向正确的方向?
lisp - 帮我写一个 Clojure 宏,它会自动将元数据添加到函数定义中
我意识到 Macro Club 的第一条规则是不要使用宏,所以下面的问题更多地是作为学习 Clojure 的练习而不是其他任何东西(我意识到这不一定是宏的最佳使用)。
我想编写一个简单的宏,它充当常规(defn)
宏的包装器,并最终将一些元数据添加到定义的函数中。所以我想要这样的东西:
...扩展成这样的东西:
原则上这对我来说似乎并不难,但我无法[args]
确定正确解析定义函数中的和其他形式的细节。
作为奖励,如果可能的话,我希望宏能够处理所有不同形式的 defn(即,有或没有文档字符串、多个 arity 定义等)。我在clojure-contrib/def
包中看到了一些看起来可能有用的东西,但是很难找到使用它们的示例代码。
clojure - 如何将 :arglists 修改为 Clojure fn 或宏?
如何修改 clojure fn 或宏的 :arglist 属性?
好的,那里没有运气,所以我尝试执行以下操作。
嗯,所以现在 :arglists 键不见了?好吧,我放弃了,我该怎么做?我只想修改 :arglists 的值。上面的示例使用了 defn,但我也想知道如何使用宏 (defmacro) 设置 :arglists。
function - 动态检索 Clojure 函数元数据
环境:Clojure 1.4
我正在尝试从函数向量中动态提取函数元数据。
现在,在 REPL 中检索元数据(在某种程度上)很简单:
但是,当我尝试制作地图以从元数据中获取:ans
、:tau-or-pi
或 basic:name
时,出现异常:
在进行了更多搜索之后,我从 2009 年的一篇帖子中得到了以下想法(https://groups.google.com/forum/?fromgroups=#!topic/clojure/VyDM0YAzF4o):
我知道defn
宏(在 Clojure 1.4 中)将元数据放在宏Var
的def
部分中,defn
所以这就是简单(meta #'funca)
工作的原因,但有没有办法动态获取函数元数据(如map
上面的示例)?
也许我在语法上遗漏了一些东西,但如果有人能指出我正确的方向或正确的方法,那就太好了。
谢谢。
macros - Clojure macro to process multiple function metadata
In Clojure, how do I make a library macro which processes supplied functions metadata and return some result? Amount of functions is unlimited and they should be passed without being boxed into a sequence ((my-macro fn1 fn2)
instead of (my-macro [fn1 fn2])
)
Say, we expect function vars having :foo keys in meta and the macro concatenates their values. The following snippet should work in REPL (considering my-macro
is in the namespace):
I tried several approaches but was only able to process single function so far.
Thanks!
clojure - Clojure 中的多参数定义——第一场比赛先发球?
具体来说,在以下情况下应该发生什么:
即,我可以依靠 clojure 始终返回 0 而不是除以零吗?
clojure - clojure - 函数体或 let 语句中的 defn/def
为什么不能像从 LET 子句那样从函数的 BODY 以相同的方式访问 defn 中的值?
clojure - Clojure 使用哪些命名空间进行定义
根据规范,def
应该在当前ns中实习var(即*ns*)。但是,以下代码看起来并不像它:
我错过了什么?
笔记:
defn
只是为了清楚起见。定义和运行匿名函数也同样有效。- 我知道使用
def
内部函数可能不是很惯用。然而,这只是我遇到的一个更大问题的精华。
clojure - Clojure Defn 在显示正确答案后返回空括号
我试图只获取一个生肖名称以将其传递到不同的功能,但我不知道为什么在显示生肖后我会得到空括号。我是 Clojure 的新手。
我运行它(miko),结果如下:
摩羯座
()
请帮我删除这个,因为当我想将结果名称(例如 Capricorn)传递给另一个函数时,它会传递 ()-括号。
clojure - Clojure 将名称定义为乘数
谁能解释为什么在下面的代码中,函数的名称在第一部分充当*
(乘数)?
给出bar
两个 args(bar 2 3)
产量(* 2 3 100)