在2014年,我在哪里获得像sin和atan2这样的Clojure三角函数?
我看到一些contrib.math现在在https://clojure.github.io/math.numeric-tower/,但似乎没有这些功能.
我正在尝试将十六进制格式化为HTML格式,在浏览器中运行ClojureScript.
这是我的"格式"功能.
(defn gen-format [& args] (apply gstring/format args) )
Run Code Online (Sandbox Code Playgroud)
在"strings"命名空间中,我需要goog.string库:
(:require [goog.string :as gstring] [goog.string.format :as gformat])
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从javascript调用它时:
document.write(mypackage.strings.gen_format("#%x%x%x",0,0,0));
Run Code Online (Sandbox Code Playgroud)
它只是回来了 #%x%x%x
它并没有崩溃.但是goog格式函数似乎并没有代替这些值.我在这里做错了吗?
问题基本上说明了一切。
在gen-class中声明函数签名时,对于二维字符串数组,我应该放置什么类型?
[myFunc [XXXX] ReturnType]
Run Code Online (Sandbox Code Playgroud)
我要为XXXX做什么?
更新:按照@Mark Topolnik的建议,我正在尝试
#^{:static true} [myFunc [ ^"[[Ljava.lang.String;" ] clojure.lang.IFn]
Run Code Online (Sandbox Code Playgroud)
在我的声明中,我回来了
java.lang.RuntimeException: Unmatched delimiter: ]
Run Code Online (Sandbox Code Playgroud)
当我尝试编译运行时异常时。
更新2:通过删除上一行中的^进行修复。(这是在gen-class中声明函数签名的上下文中,因此^可能不必要。)
这对我有用:
(is (thrown? AbstractMethodError (.fun obj 1) ))
Run Code Online (Sandbox Code Playgroud)
但这却炸了
(is (not (thrown? AbstractMethodError (.fun obj 1) )))
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
java.lang.RuntimeException: Unable to resolve symbol: thrown? in this context
Run Code Online (Sandbox Code Playgroud)
大概是“扔了”?“是”里面有一些特殊的含义,当我把“不是”放在中间时,它就不可见了。
那么我如何测试像抛出这样的断言的否定呢?
链接器可能会这样做,所以是否有一个命令行工具列出目标文件中的函数并告诉我函数及其签名的名称?
我正在尝试开发一个Python库,该库最终将放在PyPI上。
这是我在另一个项目中使用的库,该项目将其从PyPI中提取。
我在自己的项目存储库中有该库的单元测试。但是我主要通过主应用程序测试正在使用的库。
我以前是使用以下方式在本地“发布”该库的:
pip install -e
Run Code Online (Sandbox Code Playgroud)
这样,另一个存储库中的主项目就可以从本地包中提取它,并且我可以在上下文中对其进行测试。
但是现在我要去pipenv。我希望能够做到这一点。但是,如果我将依赖项放在Pipenv文件中,它似乎试图从真正的PyPI中提取,而不是从本地存储中提取。
如何使用Pipenv设置此工作流程?
我的同事刚刚指出,我对内部阶级的使用似乎是"单一的".我猜它违反了"扁平比嵌套更好"的启发式.
这里的人们怎么想?内部类是否比Python更适合Java等?
注意:我不认为这是一个"主观"的问题.当然,风格和美学在编程社区中是客观的.
相关问题: 在Python中定义另一个类中的类是否有好处?
我的Django应用程序中有一个失败的model.save().我怎样才能看到它生成的SQL?
我想存储一些"东西"列表,它们可以附加一些可选的额外属性.每件事物都可以有一个或多个属性.不同的属性有不同的类型.
我希望能够在代码中简明扼要地创建这些事物的文字列表.但是我很难看到如何通过类型系统,因为元组允许类型的混合但是固定长度,而列表是可变长度但是一种类型.
这是我想要做的一个玩具示例:
things = [
Thing 1 RED,
Thing 2 RED LARGE,
Thing 3 BLUE SMALL,
Thing 4 SMALL,
Thing 5 BLUE DOTTED
]
Run Code Online (Sandbox Code Playgroud)
等等
这样做的正确方法是什么?
我正在使用java.lang.IllegalArgumentException: No value supplied for key:我的Clojure代码.
我知道当我试图在作为参数传递的映射中对密钥进行解构时会发生这种情况.
然而,奇怪的是,这个函数已经很好地工作了很长时间,具有相同的数据.唯一似乎不同的是我现在如何导入该功能
这是错误:
Caused by: java.lang.IllegalArgumentException: No value supplied for key:
{:style {:color [255 150 150 255], :stroke-weight 2}, :points [[-1 0] [0 -1] [1 0] [0 1] [-1 0]]}
Run Code Online (Sandbox Code Playgroud)
而这就是抛出它的功能.
(defn scale
[val {:keys [style points]}]
{:style style
:points (scale-shape val points)})
Run Code Online (Sandbox Code Playgroud)
换句话说,我要求地图包含被调用的键style,points并且它被赋予一个包含被称为style和的键的映射points.
这段代码已经好几个月了.
不同之处在于我现在使用导入的sshapes/scale位置调用它sshapes:
(:require [patterning.sshapes :as sshapes])
Run Code Online (Sandbox Code Playgroud)
而之前我只是把它称为scale使用扩展名进入命名空间的地方
(:require [patterning.sshapes :refer :all])
Run Code Online (Sandbox Code Playgroud)
这会导致那种错误吗?