如何解决使用接口派生函数 - F#
我是 F# 新手,我正在尝试使用这些接口实现一个小计算器...
但是我一到 f_add 就在派生部分苦苦挣扎。
如果有人可以帮助我就好了。 :)
type IFunction =
interface
abstract member ToString: Unit -> String
abstract member Apply: Nat -> Nat
abstract member Derive: Unit -> IFunction
end
解决方法
由于 f_add
以柯里化形式定义(F# 函数的典型形式),而不是元组,因此您需要用空格传递参数,而不是作为元组:
// HERE . Using comma makes that a tuple
// member self.Derive () = f_add(f.Derive (),g.Derive ()) //wrong
相反,作为 F# 样式函数传递:
member self.Derive () = f_add (f.Derive ()) (g.Derive ())
其他实现中也存在同样的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。