在 nim 中传递函数
passing functions in nim
我在 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)
我使用平方根和地图作为示例,但最终我会将 sqrt(和其他数学过程)传递给另一个过程。有没有不用编写包装函数就可以做到这一点的方法?
有计划通过默认启用 procvar
pragma 并为 C 导入的 proc 制作包装 procvar 来使它默认工作:https://github.com/nim-lang/Nim/issues/2172
我在 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)
我使用平方根和地图作为示例,但最终我会将 sqrt(和其他数学过程)传递给另一个过程。有没有不用编写包装函数就可以做到这一点的方法?
有计划通过默认启用 procvar
pragma 并为 C 导入的 proc 制作包装 procvar 来使它默认工作:https://github.com/nim-lang/Nim/issues/2172