Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测Clojure表达式是否为基元_Clojure_Primitive - Fatal编程技术网

检测Clojure表达式是否为基元

检测Clojure表达式是否为基元,clojure,primitive,Clojure,Primitive,是否有可能以某种方式检测Clojure表达式是否保证为原始表达式 e、 我想要一个宏,可以做到这一点 (is-primitive-expression? (+ 1.0 2.0)) => true (is-primitive-expression? (+ 1N 2.0)) => false 在窗体上迭代并检查所有内容的类的宏 然后验证给定树中的所有符号都是基元类型就可以做到这一点。您必须决定是否将扩展为基本体的宏计算为基本体,如果是,则首先宏扩展参数 在表单上迭代并检查所有内容的类

是否有可能以某种方式检测Clojure表达式是否保证为原始表达式

e、 我想要一个宏,可以做到这一点

(is-primitive-expression? (+ 1.0 2.0))
=> true

(is-primitive-expression? (+ 1N 2.0))
=> false

在窗体上迭代并检查所有内容的类的宏

然后验证给定树中的所有符号都是基元类型就可以做到这一点。您必须决定是否将扩展为基本体的宏计算为基本体,如果是,则首先宏扩展参数

在表单上迭代并检查所有内容的类的宏

然后验证给定树中的所有符号都是基元类型就可以做到这一点。您必须决定是否将扩展为基本体的宏计算为基本体,如果是,则首先宏扩展参数

我不太清楚什么是原始表达式(仍在阅读)。但是,我在
clojure.contrib.repl utils
中找到了一个名为
expression info
的函数,该函数声明返回有关表达式是否为原始表达式的信息

请看这里:

我只是简单地复制了源代码并进行了尝试,但发现我需要先进行此导入:

(import '(clojure.lang RT Compiler Compiler$C))
但是,我用您的示例进行了尝试,但结果都为真(我尝试了带引号的表达式和不带引号的表达式,因为我无法判断它需要哪一个):


也许其中的一些内容可以为您提供有用的线索/提示,但这可能是毫无帮助的,因为我还没有真正理解您的问题。

我不确定我是否完全理解原始表达式是什么(仍在阅读)。但是,我在
clojure.contrib.repl utils
中找到了一个名为
expression info
的函数,该函数声明返回有关表达式是否为原始表达式的信息

请看这里:

我只是简单地复制了源代码并进行了尝试,但发现我需要先进行此导入:

(import '(clojure.lang RT Compiler Compiler$C))
但是,我用您的示例进行了尝试,但结果都为真(我尝试了带引号的表达式和不带引号的表达式,因为我无法判断它需要哪一个):


也许其中的一些信息可以为您提供有用的线索/提示,但这可能没有什么帮助,因为我还不太明白您在问什么。

查看
表达式信息的来源
,它似乎返回
primitive?
true或false,这取决于表达式的结果值是否为primitive感谢-似乎在正确的轨道上(尽管我无法找到该函数在新的模块化contrib 1.4中的位置…)最后我只是将表达式信息代码复制到我的项目中,效果很好-谢谢!查看
expression info
的源代码,它似乎返回
primitive?
根据表达式的结果值是否为primitive返回true或false感谢-似乎在正确的轨道上(尽管我无法找到该函数在1.4的新模块化contrib中的位置…)最后我只是将表达式信息代码复制到我的项目中,效果很好-谢谢!