idea离线安装 摩尔投票法 numpy matplotlib deployment 相亲网站源码 java数据分析 chrome发送post请求 centos定时任务 python界面 pythonassert函数 二分查找python python开发界面 python怎么下载 stringjava java中的注释 java配置jdk python开发实例 方正流行体 一键刷入recovery 枪神传说辅助 刷机工具下载 c语言表白代码 考试练习系统 VSPD cad特性匹配 电脑待机费电吗 变声器电脑版 directx卸载 oracle游标 一键root软件下载 苹果手机耳机没声音 刷机精灵pc版 ps阵列 关闭redis excel并排查看 shellif 网页音乐播放器代码 网络电视播放软件 3dmax2009注册机
当前位置: 首页 > 学习教程  > 编程语言

函数柯里化

2020/11/24 10:49:19 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

currying函数柯里化 currying又称部分求值,currying函数首先会接收一些参数,接收这些参数后, 不会立即求值,而是立即返回另一个函数,刚才传入的参数在函数形成的闭包中 被保存起来,待函数被真正需要求值的…

currying函数柯里化

currying又称部分求值,currying函数首先会接收一些参数,接收这些参数后,
不会立即求值,而是立即返回另一个函数,刚才传入的参数在函数形成的闭包中
被保存起来,待函数被真正需要求值的时候,之前传入的参数都会被一次性求值

示例

假设编写一个计算每月开销的函数,在每天结束时,都记录一天的开销
遍历本月每天的开销,并且求出总值

	var currying = function (fn) {
		var args = [];
		return function () {
			if (arguments.length === 0) {
				return fn.apply(this, args)
			} else {
				[].push.apply(args, arguments);
				return arguments.callee;
			}
		}
	}

	var cost = (function () {
		var money = 0;
		return function () {
			for (var i = 0, l = arguments.length; i < l; i++) {
				money += arguments[i];
			}
			return money;
		}
	}());
	var cost = currying(cost); //转化成curying函数

	cost(100); //为真正求值
	cost(150); //为真正求值
	cost(200); //为真正求值
	console.log(cost()); //求值并且打印
	这个应该不难把,那我就不想打注释了

本文链接: http://www.dtmao.cc/news_show_400356.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?