let inline pow x n = let rec pow x = function | n when n <= 0 -> LanguagePrimitives.GenericOne | 1 -> x | n -> x * pow x (n-1) pow x n [] let main argv = let n = pow 2 3 (* nはint型に推論される *) printfn "n=%d" n let f = pow 1.5 2 (* fはfloat型に推論される *) printfn "f=%f" f 0