首页 > TAG信息列表 > currying

TypeScript 包装器:可选输入和动态输出类型

包装器是封装另一个函数的函数。它的主要目的是执行原始函数不会执行的其他逻辑,通常是为了帮助减少样板代码。正确完成后,您可以向包装器添加选项,这些选项将动态确定其输出类型。这意味着您可以构建一个完全可自定义的类型安全包装器,以增强您的开发体验。在我们开始之前本文中的所有

当我们谈Currying时,我们在谈些什么

在数学中,函数是集合到集合的映射,即集合 A 中的元素,经过处理后,映射到集合 B 中的元素。可以简单表示如下: f(A)->B 函数式编程,顾名思义,就是用函数的方式去编程。关于函数式编程的起源可以追溯到20世纪初的λ演算。在λ演算中,函数只有一个参数,为了实现多参数,于是出现了函数的

函数柯里化(Currying)小实践

什么是函数柯里化 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的,尽管它是 Moses Schnfinkel 和 G

使用python with-statement进行咖喱?

我不确定这是否是“良好的python惯例”,但是可以定义一个自定义File-object,该对象可以执行以下操作: myfile = myopen('myfile.txt') with myfile: write('Hello World!') #notice we don't put "myfile.write(..)" here! 也就是说,文件上下文会创建一个函数“ write()”,这

C和currying

我有代码: #include <iostream> using namespace std; auto fn = ([](int x){ return [x](int y) { return x * y; }; }); int main() { int i = fn(2)(4); // 8 cout << i << endl; return 0; } 这段代码工作正常. 但是,我想

Javascript柯里化

 柯里化(Currying)是以美国数理逻辑学家哈斯凯尔·科里(Haskell Curry)的名字命名的函数应用方式。与偏函数很像的地方是:都可以缓存参数,都会返回一个新的函数,以提高程序中函数的适用性。而不同点在于,柯里化(Currying)通常用于分解原函数式,将参数数量为 n 的一个函数,分解为参数数量

JavaScript柯里化(currying)

参考: https://www.jianshu.com/p/33392cb4b055 https://ruby-china.org/topics/38385 https://stackoverflow.com/questions/36314/what-is-currying   柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结

在循环中在python中调整函数

所以这里有一些代码简化了我一直在做的工作: vars = { 'a':'alice', 'b':'bob', } cnames = ['charlie', 'cindy'] commands = [] for c in cnames: kwargs = dict(vars) kwargs['c'] = c print kw

javascript – 嵌套数组中的Ramda索引

试图掌握Ramda并且喜欢它到目前为止,但是我正在努力寻找看似非常基本的东西(对不起,如果这是重复的) 我有一系列数组(代表游戏板) const board = [ [4, 0, 2, 2, 0, 3, 0, 2], [4, 3, 3, 1, 2, 3, 4, 3], [4, 4, 3, 2, 4, 1, 1, 4], [0, 2, 4, 1, 0, 3, 2, 2], [4, 1, 0

javascript – 使用bind的部分函数

所以最近我发现你可以使用bind做js的部分函数/ currying. 例如: const foo = (a, b, c) => (a + (b / c)) foo.bind(null, 1, 2) //gives me (c) => (1 + (2 / c)) 但是,这仅适用于您要咖喱的部分.如果我想使用bind实现以下内容怎么办? (b) => (1 + (b / 2)) 尝试过各种解决方案,

何时在JavaScript中使用currying和partial函数

我在Dr. Dobb上看到了post关于JavaScript中的currying和部分函数的内容.它看起来很有用,但我想知道(作为偶尔的JavaScript开发人员)是否存在经常使用的标准情况?解决方法:对于初学者,我个人不建议在99%的案例中使用currying.如果使用不当,很容易使代码无法读取. 但是,我可以命名的一

python – 使用全局变量作为默认值

我有一个函数,它需要很多参数,因为我不想记住它们的位置,所以我决定使用命名参数 def f(a=None, b=None, c=None): print a,b,c f('test', c=5, b='second param') >>> test second param 5 现在,通常我一次只更改一个参数,所以我想只通过键入来调用该函数f(c = 3.14),其预期

Python用任意数量的变量进行curry

我正在尝试使用currying在Python中进行简单的功能添加.我发现这个咖喱装饰here. def curry(func): def curried(*args, **kwargs): if len(args) + len(kwargs) >= func.__code__.co_argcount: return func(*args, **kwargs) return (lambda

js的函数式编程-柯里化

Currying 为实现多参函数提供了一个递归降解的实现思路——把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数,在某些编程语言中(如 Haskell),是通过 Currying 技术支持多参函数这一语言特性的。 所以 Currying 原本