微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用接口派生函数 - F#

如何解决使用接口派生函数 - 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 举报,一经查实,本站将立刻删除。