2014/09/01

F# の型推論

open System

// オーバーロードされたメソッドはどっかに型注釈が必要 -> Bad
let f x = Math.Abs x + x      

// 呼び出されるメソッドより後に型注釈を書いてもダメ -> Bad
let f x = Math.Abs x + (x:int)

// 先に型を決めておけば通る -> OK
let f (x:int) = Math.Abs x + x
let f x = (x:int) + Math.Abs x

// その場で型を決めても通る -> OK
let f x = Math.Abs (x:int) + x

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.