我看了很多来源:似乎不可能在F#ala Haskell中声明一个类型定义:
' haskell type def:
myFunc :: int -> int
Run Code Online (Sandbox Code Playgroud)
我想在F#中使用这种类型的def风格 - FSI很乐意回复我:
fsi> let myType x = x +1;;
val myType : int -> int
Run Code Online (Sandbox Code Playgroud)
我想在Haskell中明确说明F#中的类型def签名.有没有办法做到这一点?我想用F#写:
//invalid F#
myFunc : int -> int
myFunc x = x*2
Run Code Online (Sandbox Code Playgroud)
sep*_*p2k 24
通常的方法是做let myFunc (x:int):int = x+1.
如果你想更接近haskell风格,你也可以这样做let myFunc : int -> int = fun x -> x+1.
Tom*_*cek 20
如果要将可读类型声明与实现分开,可以使用"fsi"文件(F#签名文件).'fsi'只包含类型,通常还包含注释 - 您可以在F#库的源代码中看到一些很好的示例.您将创建两个这样的文件:
// Test.fsi
val myFunc : int -> int
// Test.fs
let myFunx x = x + 1
Run Code Online (Sandbox Code Playgroud)
这适用于已编译的项目,但您无法使用F#Interactive轻松使用此方法.
| 归档时间: |
|
| 查看次数: |
3754 次 |
| 最近记录: |