javascript-可以向我解释一下此解决方案的工作原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-可以向我解释一下此解决方案的工作原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1447字,纯文字阅读大概需要3分钟。
内容图文
我通过反复试验解决了以下问题,但仍然对我的操作方法没有适当的了解.
有一个功能cons:const cons =(x,y)=> f => f(x,y);
缺点将值存储到变量对中:const pair = cons(5,3);
创建两个函数car和cdr,它们每个都将返回各自的参数.
汽车(对); // 5
cdr(对); // 3
我的解决方案:
const car =对=>对((x,y)=> x);
const cdr =对=> pair((x,y)=> y);
const cons = (x, y) => f => f(x, y);
const pair = cons(5, 3);
const car = pair => pair((x, y) => x);
const cdr = pair => pair((x,y) => y);
const carTest = car(pair);
const cdrTest = cdr(pair);
console.dir(carTest);
console.dir(cdrTest);
解决方法:
很难回答您的操作方式,因为您似乎迷失了答案.
当您还不知道答案时,通过发明一个从来都不是那么线性的思维过程来作弊,一种解决方法是首先仔细研究弊端:
const cons = (x, y) => (f => f(x, y))
它需要两件事,(x,y),然后返回一个函数.
该函数使用另一个函数f,并返回将该函数应用于cons给出的(x,y)的结果.
对于汽车,我们要提取此类对中的第一个元素.
要选择(x,y)的第一个元素,我们可以将其传递给函数
const first = (x, y) => x
由于对是需要一个函数并将该函数应用于其元素的事物,因此首先传递给对应该选择其第一个元素:
(cons(3,5))(first)
是3.
但是语法现在是“向后的”,因此我们使用另一个函数来解决它:
const car = p => p(first)
替换第一个的定义:
const car = p => p((x,y) => x)
相同的过程导致cdr.
要确切了解正在发生的事情,您可以
const pair = cons(5, 3);
用cons的定义代替:
const pair = f => f(5, 3);
将汽车应用于f => f(5,3)并继续替换:
(pair => pair((x, y) => x)) (f => f(5,3))
-->
(f => f(5,3)) ((x, y) => x))
-->
((x, y) => x)) (5,3)
--> 5
内容总结
以上是互联网集市为您收集整理的javascript-可以向我解释一下此解决方案的工作原理全部内容,希望文章能够帮你解决javascript-可以向我解释一下此解决方案的工作原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。