我需要用代码中许多地方的两个参数调用一个函数。
hash(itemToHash, algorithm) { ... }我不想在每个函数调用中传递algorithm参数。
我可以使用一个参数创建一个函数,该参数将委托调用:
md5hash(itemToHash) {
hash(itemToHash, 'md5')
}或者我可以使用部分应用程序来绑定algorithm参数。
我这样做的方法是创建一个高阶函数,它返回部分应用的散列函数,我将从代码中的许多地方调用这个高阶函数来获得单个参数函数。
但是,这不是没有必要的复杂吗?与简单的呼叫委派相比,我认为第二种方法并没有任何好处。
发布于 2014-03-14 18:15:48
假设您有一些函数partial,它将参数部分应用于其他函数。您不需要在代码中任何地方调用这个partial函数,这样就可以使用部分应用的函数。
事实上,你只能叫它一次。若要生成部分应用的函数,然后说,将其绑定到名称。
md5Hash := partialRight(hash, 'md5')至于我的理解,甚至
md5Hash(itemToHash) {
hash(itemToHash, 'md5')
}是某种局部的应用。虽然是静态的。partial函数的好处是能够在运行时创建部分应用的函数。
https://stackoverflow.com/questions/22409763
复制相似问题