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_Clojurescript - Fatal编程技术网

Clojure中与平台无关的数学函数(脚本)

Clojure中与平台无关的数学函数(脚本),clojure,clojurescript,Clojure,Clojurescript,如何以纯Clojure方式访问诸如sin、cos或PI之类的内容 例如,如果我想编写一个纯库,我不能使用像(.PI Math)(Java)或(.PI)这样的东西 js/Math)(js)。Sin示例: (.sin js/Math 3) PI示例: (aget js/Math "PI") 在控制台中显示: (.log js/console (aget js/Math "PI")) 希望有帮助。最简单的方法是使用Cljx: 使用它,您可以编写如下内容: (* 5 #+clj (.PI Mat

如何以纯Clojure方式访问诸如
sin
cos
PI
之类的内容

例如,如果我想编写一个纯库,我不能使用像
(.PI Math)
(Java)或
(.PI)这样的东西 js/Math)
(js)。

Sin示例:

(.sin js/Math 3) 
PI示例:

(aget js/Math "PI")
在控制台中显示:

(.log js/console (aget js/Math "PI"))

希望有帮助。

最简单的方法是使用Cljx:

使用它,您可以编写如下内容:

(* 5 #+clj (.PI Math) #+cljs (.‑PI js/Math))
并将此代码正确编译为Clojure和ClojureScript

据我所知,没有更好的方法来编写一个代码作为Clojure/ClojureScript运行

有一些计划将平台检测包含在Clojure本身中,但我认为它还没有准备好。

Cljx Cljx已经被弃用了几年。请参阅,这也是对新解决方案的良好概述:

.cljc
针对多个Clojure平台的代码使用(在Clojure中引入)编写在.cljc文件中

优秀的应用程序使用cljc实现了独立于平台的Clojure math,这不仅为我们提供了一个有用的库,而且为我们提供了一个很好的方法示例。摘录:

(def PI
#(:clj数学/PI)
:cljs/Math.PI)
(定义单[x]
#(:clj(数学/正弦x)
:cljs(js/Math.sinx)))
(定义无限)
#?(:clj双/正无穷大
:cljs/Infinity)

此代码来自。

该平台如何独立?您好,请阅读标题(即,它声明“Clojurescript”):“平台独立”一词不是确定的。一般来说,javascript被认为是“平台独立的”(就像大多数现代操作系统支持的标准jsvascript一样)。javascript数学库是标准的。因此,我需要问您关心哪些平台不支持javascript?更重要的是,为什么要在不包含标准javascript的平台上使用Clojurescript?你读过这个问题吗?本例中的平台当然是Clojure的实现。您刚刚演示了如何在Javascript平台上实现这一点(顺便说一句,我已经在问题中说明了这一点)。您好,请编辑问题,以便包含您对“平台”的定义。请编辑标题:)人们只能回答你问的问题:)你的问题越具体,含糊不清的地方越少,答案就越好:)祝你好运:)我觉得问题很清楚。yonki似乎也这么认为,因为他的答案是正确的,“纯Clojure方式”是在适当的时候使用宿主语言的互操作,如本例所示。你是在问(a)是否有一个与宿主语言无关的数学库,还是(b)如何为Clojure和ClojureScript编写代码?如果是后者,请看一下。我在这里复制并粘贴了js interop for Math/PI的一些奇怪字符,可能值得您自己键入。回答得好,谢谢。