最近,在我使用过的大多数现代编程语言(C/C++、C#、F#、Ruby、JS等等)中,几乎没有(如果有的话)语言支持来确定子程序的实际功能,这让我越来越沮丧。
考虑以下简单的伪代码:
var x = DoSomethingWith(y);
如何确定对DoSomethingWith(y)的调用将实际做什么?它会变异y,还是会返回y的副本?它是依赖于全局还是局部状态,还是只依赖于y?它会改变全球还是地方的状态?关闭是如何影响呼叫的结果的?
在我遇到的所有语言中,几乎所有这些问题都不能仅仅通过查看子例程的签名来回答,而且几乎从来没有任何编译时或运行时支持。通常,唯一的方法是信任API的作者,并希望文
我正在学习Ramda,并尝试实现无点编程。为了做到这一点,我试着到处重构,但被困在这上面。
显然,我认为这不起作用,因为调用是异步的,但是我找不到这段代码的问题所在。
// Why is this
const toJSONRamda = R.pipe(
R.prop('json'), // getting the 'json' function
R.call // and calling it
)
// different from this
const toJSON = response => response.json()
// Wor