【发布时间】:2018-03-26 21:18:48
【问题描述】:
我所说的“c++ 函数对象”(函子)是指:“定义了函数调用运算符的对象。”
我想有几种方法可以做到这一点。例如,假设我们需要一个参数化函数:
f(x) = sin(x*freq) // maths
我们可以使用“函数构造函数”:
(defn newSinus [freq]
(fn [x] (Math/sin (* freq x)))
)
(def sin1 (newSinus 2.0) )
(def sin2 (newSinus 1.5) )
(println (sin1 1.5))
(println (sin2 2.0))
但是,如果我们想读取sin1或sin2中的参数呢?
我们有多少种方法可以做到?
谢谢。
【问题讨论】:
-
@Carcigenicate 是的,就是这样
-
函子是不同的东西——一种将函数提升到其他类型的方法。
标签: lambda clojure functional-programming functor