首页 > 编程语言 >c# 柯里化(Currying)

c# 柯里化(Currying)

时间:2023-01-02 21:24:17浏览次数:30  
标签:调用 函数 c# 参数 柯里化 Currying Add2

1.柯里化(Currying):是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

2.好处:可以在调用的时候逐渐提供参数(参数复用),让函数的调用变得更加灵活和方便。

3.简单范例:

 1         static void HighFunc()
 2         {
 3             //高阶写法
 4             Func<int, Func<int, int>> Add2 = x => y => x + y;
 5             //1.依次调用
 6             Func<int, int> addfunc = Add2(2);
 7             int rlt = addfunc(3);
 8             //2.合并调用写成一行
 9             int rlt2 = Add2(2)(3);
10             Console.WriteLine(Add2(2)(3));
11         }

 

标签:调用,函数,c#,参数,柯里化,Currying,Add2
From: https://www.cnblogs.com/holyone/p/17020537.html

相关文章

  • Vulnhub之Infosec Warrior 1靶机详细测试过程
    InfosecWarrior靶机信息名称:InfoSecWarriorCTF2020:01地址:https://www.vulnhub.com/entry/infosecwarrior-ctf-2020-01,446/识别目标主机IP地址......
  • 2023/01 LeetCode练习
    ......
  • C# “System.Data“中不存在类型或命名空间名“OleDbConnection“ 的解决
     解法说明C#程序中如果缺少了什么,可以用nuget下载对应的类库。步骤是:项目——管理Nuget程序包——搜索下载就好了补充说明如果nuget收不到的,同时在项目——添加引用中也......
  • 整合logback日志框架
    引入lombok依赖<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version><scope>provided</s......
  • gcd(a, b, c) = gcd(gcd(a, b), c)
    某一天,我正苦逼的刷题看题解,看到下面的代码inttmp=0; for(inti=1;i<=n;++i){ scanf("%d",&a[i]); tmp=gcd(tmp,a[i]); }​ 我心中一惊:wc,这就能求gcd(a1,a2......
  • svg click
    <svgwidth="640"height="480"version="1.1"xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"><rectx="150"y="50"width="100"he......
  • linux 找回root密码方法(CentOs 7.6)
    1:首先,启动系统,进入开机界面,在界面中按e进入编辑界面。如下图:2:进入编辑界面,使用键盘上的上下间吧光标往下移动,找到以"linux16"开头内容所在的行数,在行的最后面输......
  • 安卓 RecyclerView的导入方式 标准方式!
    安卓RecyclerView的导入方式标准方式! RecyclerView是安卓开发中最常用的一个UI控件没有之一,下面介绍一种官方的导入方式  第一步点击:ProjectStructurestep......
  • 第十五章《网络编程》第3节:基于TCP协议的网络编程
    ​如果希望开发一个类似于QQ那样的即时通信软件,就必须使用基于TCP协议的编程技术。基于TCP协议的编程可以实现在通信两端建立虚拟网络链路,这样的话通信两端的程序就能通过虚......
  • Docker配置redis相关
    三主三从配置---首先要保证dockerqidongsystemctlstartdocker---拉取redis镜像dockerpullredis:6.0.8---运行redis实例dockerrun-d--nameredis-node-1--nethost-......