我决定自学函数式编程。
我已经提交了我所有的作业,同时维护了函数式编程的规则,我的老师对此完全没有意见。为了获取信息,我一直在做这样的事情:
var getWidth = function(){
return prompt("What is the width?");
};这很好,但是它可以更简单一些,比如:
var getWidth = prompt("What is the Width?");这方面的问题是,当我调用函数getWidth()时,它只运行一次函数并将其分配给getWidth变量。但这不是我想要的,每次调用prompt("What is the Width?")时,我都希望它运行getWidth()。我试过寻找它,但我并不完全确定如何表达它。谷歌是有用的,如果你知道如何使用它。
发布于 2017-11-10 06:48:29
行动小组可能要找的是兰达功能速记。这是一个非常简单的代码,让我们正确的函数短得多。它通常用于匿名函数,但在这里很容易被重新使用。例如:
function getWidth(){
return prompt("What is the width?");
}将减少为:
var getWidth() = () => prompt("What is the width?");请注意,提示符的值将自动返回,因此不需要将return添加到代码中。
如果需要,也可以指定参数,如下所示:
var getWidth = (x) => prompt(x);如果以这种方式使用参数,那么()是可选的。这也是可行的:
var getWidth() = x => prompt(x);发布于 2016-09-29 00:46:29
发布于 2016-09-29 03:12:16
它可以更简单一些,比如:
你不能“简化”一个函数
var a = function onePlusTwo() {
return 1 + 2;
};通过写作
var a = 1 + 2;这两者所做的事情完全不同。
第一个定义一个函数(意思是而不是执行它),并将该函数分配给变量a。然后可以用a()调用该函数,该函数将计算到3,因为这是函数的返回值:
alert(a() * 2) // 6第二个(var a = 1 + 2;)只执行函数正文中的代码。执行它将1 + 2的结果分配给变量a,这段代码只有在程序的其他地方复制和粘贴才能“重用”。
因此,如果您想要定义功能并重用它,您别无选择,只能将其定义为一个函数。这就是函数的作用!
如果您想要获取一个函数并创建另一个函数,您以后可以使用它来调用该函数,无论是否带有一些参数,然后,正如另一个答案中所提到的,您可以使用bind (在var a = prompt.bind(window, "What is the width?");中),然后使用a()调用它。但从本质上讲,这与按照第一个示例编写函数的方式是一样的,而且可读性有点差。
顺便说一句,这些都不是“函数式编程”。函数编程并不意味着仅仅使用函数;所有程序都是这样做的。函数式编程是指一种涉及操作、组合、动态创建和传递函数的编程风格。
https://stackoverflow.com/questions/39759589
复制相似问题