函数签名

This commit is contained in:
Sanchime 2022-02-20 17:40:46 +08:00
parent a6b27c3f64
commit 66103942b7
1 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,40 @@
module FunctionSign
//
// 表达的是 输入类型 -> 输出类型
// 比如let add_one a = a + 1的函数签名是int -> int
// a的类型由表达式a + 1int
// intint
//
//
let add a b = a + b
// int -> int -> int
// 实际上这是科里化的表达,相当与fun a:int -> fun b:int -> int
//
let apply func value = func value
// ('a -> 'b) -> 'a -> 'b
// 首先('a -> 'b)func,
// ,,,'
// 表达的是接受一个从'a 映射到 'b'a,'b
// *
//
let add_by_tuple (a, b) = a + b
// int * int -> int
// ,*
//
let sum_by_list list: int = list |> List.reduce (fun a b -> a + b)
// list<int> -> int
//
let sum_by_array array: int = array |> Array.sum
// []<int> -> int
//
let sum_by_seq seq: int = seq |> Seq.sum
// seq<int> -> int