有了JavaScript的灵活性,我们可以编写充满副作用的代码,或者仅仅是纯功能性的代码。
我对函数式JavaScript很感兴趣,并希望在这个范例中开始一个项目。对此一针见血肯定能帮助我收集好的实践经验。是否有任何链接来执行纯功能和副作用的自由风格?
发布于 2017-02-03 12:16:52
纯分析相当于解决停止问题,因此,在一般情况下,任何能够确定代码是纯还是不纯的静态分析都是不可能的。无论是否纯粹,总是有无限多的程序是无法判定的;其中有些程序是纯洁的,有些是不纯的。
现在,您故意使用了术语" linter“,而不是静态分析器(当然,linter只是一个静态分析器),这似乎意味着您对大致的启发式结果很满意。您可以拥有一个linter,它有时会告诉您您的代码是纯的,有时告诉您您的代码是不纯的,而大多数时候告诉您,它无法决定您的代码是纯的还是不纯的。您可以拥有已知为纯操作的白名单(例如,使用+运算符添加两个+),以及已知不纯操作的黑名单(例如,任何可以抛出异常的操作、任何类型的循环、if语句、Array.prototype.forEach),并对这些操作进行启发式扫描。
但最终,结果将太不可靠,无法采取任何严肃的行动。
发布于 2017-02-03 12:14:39
我自己也没有用过这个插件,但是我找到了ESLint:https://github.com/jfmengels/eslint-plugin-fp的插件
发布于 2017-02-03 13:11:49
您不能完全使用JS而不产生副作用。每个DOM访问都是一个副作用,我们可以有一个论点--整个全局命名空间也可能属于该定义的范围。
你能做的就是保持理智。我把它逻辑上分成两组:
Array#map()或承诺then()的函数,以及类似的地方。这样所有的函数都尽可能的简短和简单。不要害怕描述性的名字(不像一般名称那样:)
https://stackoverflow.com/questions/42023962
复制相似问题