我在Nim(版本0.10.2)中传递数学函数(procs)时遇到问题。
import math
var s1 = @[1.1, 1.2, 1.3, 1.4]
var s2 = map(s1, math.sqrt)
我收到错误
Error: 'sqrt' cannot be passed to a procvar
如果我为sqrt编写一个包装函数,它就可以了。
proc fxn(x: float): float = math.sqrt(x)
var s2 = map(s1, fxn)
我使用平方根和map作为示例,但最终我将把sqrt(和其他数学过程)传递给另一个proc。有没有办法在不编写包装函数的情况下执行此操作?
答案 0 :(得分:3)
默认情况下,计划默认启用此工作,默认情况下启用procvar
编译指示,并为C导入的触发器创建包装procvar:https://github.com/nim-lang/Nim/issues/2172