functional-programming相关内容
在loDash(v4.6.1)中遇到了一个奇怪的情况,我将_.padStart的_.partialRight函数传入_.map回调并得到不正确的结果。 转载: _.padStart("0", 2, "0"); // "00" var f = _.partialRight(_.padStart, 2, "0"); f("0"); // "00" _.map(["0"], function
..
为什么Ocaml有可变数组?据我所知,函数式编程是为了将副作用降到最低。可变(edit:)数组是否与此想法相反? 即使字符串在Ocaml中也是可变的,这在Python中甚至不是这样的,或者OCaml不被视为纯函数式语言吗? 推荐答案 OCaml不是纯函数式语言,TRUE。它有一个纯功能子集,但支持突变和许多命令性构造(以及可变的OO对象)。我的重点是允许程序员在为函数式编程提供极
..
我看到一些源代码有 let rec parse_document = parser | [] -> parse_list [] (ES.take_int32 len st) | [] -> malformed "parse_document" 我可以知道[]里面是什么吗?在谷歌上搜索这类标志太难了
..
在racket中,可以通过执行以下操作从一个函数返回多个值: (define (foo) (values 1 2 3)) 然后我们可以通过执行以下操作来绑定它们 (define-values (one two three) (foo)) 现在one绑定到1、two绑定到2、three绑定到3。 我有一个函数可以返回多个值,但我只对其中的一些值感兴趣。有没有办法在“忽略
..
我目前正在努力掌握Erlang。这是我研究的第一种函数式编程语言,我注意到在Erlang中,您所做的每个赋值都是单个赋值。显然,不仅在Erlang中,而且在许多其他函数式编程语言中,赋值都是通过单一赋值来完成的。 我真的不明白他们为什么要做这个。单项作业的目的究竟是什么?我们能从中得到什么好处? 推荐答案 不变性(您称之为单一赋值)简化了很多事情,因为它从您的程序中去掉了&q;t
..
When should I write my functions in curried form?与我的想法不符,需要更正我自己。 作为我学习的一部分link,这是我从函数汇聚中了解到的。下面是一个示例: def curry2(f): """Returns a function g such that g(x)(y) == f(x, y) >>> from opera
..
我需要从三个不同的API向一个函数传递三个数据: this.service.service1().subscribe( res1 => { this.service.service1().subscribe( res2 => { this.service.service1().subscribe( res3 => { this.funcA(res1, res2, re
..
假设我有一个包含大量项目的列表, l = [ 1, 4, 6, 30, 2, ... ] 我要获取该列表中的项目数,其中一个项目满足特定条件。我的第一个想法是: count = len([i for i in l if my_condition(l)]) 但是,如果过滤后的列表也有大量的项目,我认为 为过滤结果创建新列表只是浪费内存。为了提高效率,IMHO,上面的调用不能优于:
..
如何在函数式编程语言中递增变量? 例如,我希望这样做: main :: IO () main = do let i = 0 i = i + 1 print i 预期输出: 1 推荐答案 简单的方法是引入变量名的隐藏: main :: IO () -- another way, simpler, spec
..
filter、map 和 reduce 在 Python 2 中完美运行.下面是一个示例: >>>定义 f(x):返回 x % 2 != 0 和 x % 3 != 0>>>过滤器(f,范围(2、25))[5、7、11、13、17、19、23]>>>定义立方体(x):返回 x*x*x>>>地图(立方体,范围(1, 11))[1、8、27、64、125、216、343、512、729、1000]>>
..
我目前正在研究 React JS 和 React Native 框架.在中途我遇到了 Immutability 或 Immutable-JS 库,当时我正在阅读关于Facebook 的 Flux 和 Redux 实现. 问题是,为什么不变性如此重要?改变对象有什么问题?这不是让事情变得简单吗? 举个例子,让我们考虑一个简单的新闻阅读器应用,其起始屏幕是新闻标题的列表视图. 如果我
..
是否有与 Python 的 zip 函数等效的 javascript?也就是说,给定多个长度相等的数组创建一个对数组. 例如,如果我有三个如下所示的数组: var array1 = [1, 2, 3];var array2 = ['a','b','c'];var array3 = [4, 5, 6]; 输出数组应该是: var 输出数组:[[1,'a',4], [2,'b',5], [
..
我在几篇文章和博客中看到了对柯里化函数的引用,但我找不到一个好的解释(或者至少是一个有意义的解释!) 解决方案 柯里化是将一个接受多个参数的函数分解为一系列函数,每个函数只接受一个参数.下面是一个 JavaScript 示例: function add (a, b) {返回 a + b;}添加(3, 4);//返回 7 这是一个函数,它接受两个参数,a 和 b,并返回它们的和.我们现在
..
我正在开发嵌入式系统,因此代码大小是一个问题.使用标准库将我的二进制大小增加了大约 60k,从 40k 增加到 100k.我想使用 std::function,但我不能证明它是 60k 的.是否有我可以使用的独立实现,或类似的东西?我正在使用它在 c++ 11 中使用绑定变量在成员函数中隐式转换 lambda. 解决方案 60k 来自编译器添加的异常处理,因为 std::function
..
在 Haskell 中,是否可以编写一个带有签名的函数,该函数可以接受两种不同(尽管相似)的数据类型,并根据传入的类型进行不同的操作? 一个例子可能会让我的问题更清楚.如果我有一个名为 myFunction 的函数,以及两个名为 MyTypeA 和 MyTypeB 的类型,我可以定义 myFunction 以便它只能接受 MyTypeA 或 MyTypeB 类型的数据作为它的第一个参数?
..
我是 Scala 的新手,能够将函数传递给其他函数非常简洁——但是我可以将 任意 函数引用传递给另一个函数吗?所述功能参数的元数将是固定的(也就是说,我也很好奇您是否也可以传递具有任意元数的函数).我一直被类型错误绊倒.我试过使用 Any 但它似乎没有帮助. 例如,我有以下代码: class CodeRunner(val user_defined: (Int) => Unit) {def
..
使用 Haskell 的类型类,它似乎启用了即席多态,但它的函数声明似乎是参数多态.我是否混合了我对不同事物的理解? 解决方案 确实,Haskell 支持(更高级别的)参数多态性和 ad hoc(或 有界)多态性.Haskell 中的参数多态性通过其 Hindley-Milner/System F 类型系统得到支持.通过类型类支持临时多态性. 关于类型类和即席多态性的起源,请参阅 W
..
一直以来,我发现自己在做这样的事情: 动物 *animal = ...if (Cat *cat = dynamic_cast(animal)) {...}else if (Dog *dog = dynamic_cast(animal)) {...}否则 { 断言(假);} 一旦我看到 C++11 中的闭包,我想知道,这样的事情可能吗? 动物 *animal = ...类型(动物,[](猫*猫
..
..
例如,Haskell 有 id 函数,Julia 有 identity 函数,SO 的很多问题都涉及到identity 函数.(我想在 Python 中你可以做 lambda x:x) 我一直在绞尽脑汁想这个功能的用例;我失败了. 身份函数的目的是什么,它的常见用例是什么? 解决方案 请记住,在 Haskell 中,函数是一等值,可以像其他值一样用作数据,并作为参数传递给其他函
..