第一天在F#工作。我在Haskell度过了一段时间,并且正在尝试学习F#以使用一些现有的.net代码。为什么这段代码对我生气了?什么相当于:t?如何向main添加类型注释?
type Color = Red | Green
[<EntryPoint>]
let main =
let a = Red
if a = Red then
printfn "hi!"
else
printfn "no!"
答案 0 :(得分:6)
具有[<EntryPoint>]
属性(例如main
)的函数的签名在您的版本中应为string[] -> int
,它缺少string[]
参数和返回值类型int
您可以通过添加以下内容来解决此问题:
type Color = Red | Green
[<EntryPoint>]
let main argv = //argv added here is inferred to be string[]
let a = Red
if a = Red then
printfn "hi!"
else
printfn "no!"
0 //Return 0, all OK
如果最后0
没有返回int
,则返回unit
(printfn
的结果)。