【C#/F#】「函数式编程」第二讲:函数签名,与“诚实”的函数

函数是函数式编程的核心,在之前的内容中,我们介绍了有关F#强大的类型推断能力,但F#其实是一门静态强类型的语言,C#自然也是。对于这种类型的语言,函数和其参数都是有自己的类型。在这样的情况下,我们可以通过一些方式去描述我们的函数。

函数签名

函数签名通常由箭头符号组合而成,让我们从最简单的开始

int AddOne(int a) => a + 1;

这个函数的签名就是

AddOne: int -> int

代表"函数AddOne输入一个int返回一个int"。

对于返回为void或者没有输入参数的函数来说,我们一般使用()表示,例如()->string,代表, 函数不接受任何参数,返回一个string。

以下是一些函数的例子,左侧为函数签名,右侧为C#函数(lambda)

() -> string          () => "Hello, World!"; 
() -> int             () => 42;
(int, int) -> int     (int a, int b) => a + b;
string -> int         (string s) => s.Length;
int -> bool           (int x) => x % 2 == 0;
() -> ()              () => Console.WriteLine("Hello, World!");

还记得我们上一讲说到的高阶函数吗?也可以写出其函数签名

Func<int, int, bool> SwapArgs(Func<int, int, bool> func) 
  => r
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值