繁体   English   中英

JavaScript函数计算器

[英]calculator on JavaScript functions

我最近在一次采访中遇到一个问题,该问题使用JavaScript中的函数实现计算器,如下所示:

five(plus(one()));     //returns 6
seven(minus(one())); // returns 6

我将如何实施?

一种方法是创建一个函数getNumber(x) ,该函数将返回一个函数(称为foo )。 Foo接受运算符函数作为输入,并将运算符函数应用于x 但是,在您的示例中,并非总是给出数字的运算符函数(例如: one() ),因此,在这种情况下,运算符函数将默认为identity函数 ,该函数将返回数字x (例如:如果未提供运算符,则one()需要返回1 )。

您还可以创建一个函数setOperator ,在该函数上可以为两个数字( xy )提供一个运算符,然后在调用数字函数的结果上对其进行调用。 运算符函数使用y ,然后返回一个新函数,该函数使用x 通过使用函数可以看到(例如: five(plus(one())) ), one()首先提供给运算符,然后在调用我们的foo函数时提供5 (因此),因此,我们需要接受首先是y ,然后是x

请参见下面的示例:

 const getNumber = x => (f = x => x) => f(x); const setOperator = f => y => x => f(x, y); const five = getNumber(5); const one = getNumber(1); const seven = getNumber(7); const plus = setOperator((x, y) => x+y); const minus = setOperator((x, y) => xy); console.log(five(plus(one()))); // 6 console.log(seven(minus(one()))); // 6 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM