博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
定义一个返回调用参数函数两次的函数的函数
阅读量:7157 次
发布时间:2019-06-29

本文共 676 字,大约阅读时间需要 2 分钟。

原题是这样:

定义一个过程 Double, 它以一个有一个参数的过程为参数, Double 返回一个过程, 这一过程将原来那个参数过程应用两次。例如, 若 Inc 是个给参数加一的过程, Double(Inc) 将给参数加二。

那么, 下面的表达式会返回什么值:

Double(Double(Double(Inc)))(5)

我当时的思路是:

using cint = const int;using iFun = function
;iFun Double (iFun f){ return f(f(?));}

而问题就在于, 里面的 “?” 该如何处理。 里面是该有个参数, 可是参数从何而来?

后来我才反应过来, 是要返回的函数需要一个参数, 于是应该为:

using cint = const int;using iFun = function
;iFun Double (iFun f){ return[f] (cint &i) {
return f(f(i));};}int Inc (cint &i){ return (i + 1);}int main (){ cout << Double(Double(Double(Inc)))(5); cout << endl; return 0;}

 

转载于:https://www.cnblogs.com/wuOverflow/p/4281746.html

你可能感兴趣的文章
vue学习心得
查看>>
线程同步
查看>>
[硬件知识]OP(Over-provisioning)预留空间
查看>>
网页关闭(解决window.close在火狐下不兼容问题)
查看>>
生成SSH密钥添加到GitHub
查看>>
折半、快排、插入排序的Java实现
查看>>
查找数组中的众数
查看>>
第一章Python入门
查看>>
vue结合 better-scroll 下拉加载问题
查看>>
java-maven
查看>>
链路聚合
查看>>
CodingTMD’s Reading List
查看>>
如何将可执行文件打包至APK并运行(转)
查看>>
值类型与引用类型
查看>>
<转>如何测试大型ERP软件?
查看>>
Python爬虫学习==>第一章:Python3+Pip环境配置
查看>>
大数据-09-Intellij idea 开发java程序操作HDFS
查看>>
小米4c jni调用CallStaticIntMethod报错问题解决
查看>>
centos7安装配置git
查看>>
Unattend.xml应答文件制作(WISM)
查看>>