f# - FSharp 中的签名实现

标签 f# functional-programming

在Fsharp中实现签名

签名:MyLibrary.fsi

namespace myLib
module public MyModule1 =
    val addition : p:float -> float

实现:MyLibrary.fs

namespace myLib
module public MyModule1 = 
    let addition p = p*2.0

测试

#load "C:\@@@@@\Projects\MyLibrary.fsi"
#load "C:\@@@@@\Projects\MyLibrary.fs"
open myLib.MyModule1

错误:

C:\@@@@@\Projects\MyLibrary.fsi(1,1): error FS0240: The signature file 'FSI_0015_MyLibrary' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match.

@@@@@ 相当于我的完整路径

最佳答案

希望我已经明白你在追求什么。如果您还需要其他东西,请告诉我?

module public MyModule =
        type IMyModule1 = 
            abstract member addition : double -> double
        type MyModule =
            interface IMyModule1 with 
                member this.addition p = p*2.0

关于f# - FSharp 中的签名实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27313670/

相关文章:

f# - F# 4.5 中的 byref 返回

functional-programming - OCaml中的懒惰 "n choose k"

f# - 如何在 F# 中实现获取最大元素函数?

f# - 将数组映射到上一个、当前和下一个值的元组数组

f# - 如何在 fsi 中运行 .fsx

oop - 相当于在 Haskell 中创建对象

javascript - 逐步执行功能时遇到麻烦,减少了一系列功能

javascript - React.js 中声明式和命令式的区别?

javascript - 提高使用解构和递归处理数组的函数的性能

f# - 是否存在将函数应用于元组的每个成员的现有函数?