functional-programming相关内容

为什么ocaml有可变数组?

为什么Ocaml有可变数组?据我所知,函数式编程是为了将副作用降到最低。可变(edit:)数组是否与此想法相反? 即使字符串在Ocaml中也是可变的,这在Python中甚至不是这样的,或者OCaml不被视为纯函数式语言吗? 推荐答案 OCaml不是纯函数式语言,TRUE。它有一个纯功能子集,但支持突变和许多命令性构造(以及可变的OO对象)。我的重点是允许程序员在为函数式编程提供极 ..
发布时间:2022-03-04 15:42:26 其他开发

忽略球拍中的多个返回值

在racket中,可以通过执行以下操作从一个函数返回多个值: (define (foo) (values 1 2 3)) 然后我们可以通过执行以下操作来绑定它们 (define-values (one two three) (foo)) 现在one绑定到1、two绑定到2、three绑定到3。 我有一个函数可以返回多个值,但我只对其中的一些值感兴趣。有没有办法在“忽略 ..
发布时间:2022-02-27 21:30:45 其他开发

单一作业的目的是什么?

我目前正在努力掌握Erlang。这是我研究的第一种函数式编程语言,我注意到在Erlang中,您所做的每个赋值都是单个赋值。显然,不仅在Erlang中,而且在许多其他函数式编程语言中,赋值都是通过单一赋值来完成的。 我真的不明白他们为什么要做这个。单项作业的目的究竟是什么?我们能从中得到什么好处? 推荐答案 不变性(您称之为单一赋值)简化了很多事情,因为它从您的程序中去掉了&q;t ..
发布时间:2022-02-25 10:28:50 其他开发

在一定条件下从列表(或其他可迭代的)中获取项目数

假设我有一个包含大量项目的列表, l = [ 1, 4, 6, 30, 2, ... ] 我要获取该列表中的项目数,其中一个项目满足特定条件。我的第一个想法是: count = len([i for i in l if my_condition(l)]) 但是,如果过滤后的列表也有大量的项目,我认为 为过滤结果创建新列表只是浪费内存。为了提高效率,IMHO,上面的调用不能优于: ..
发布时间:2022-02-22 10:49:04 Python

为什么 JavaScript 中的不变性如此重要(或需要)?

我目前正在研究 React JS 和 React Native 框架.在中途我遇到了 Immutability 或 Immutable-JS 库,当时我正在阅读关于Facebook 的 Flux 和 Redux 实现. 问题是,为什么不变性如此重要?改变对象有什么问题?这不是让事情变得简单吗? 举个例子,让我们考虑一个简单的新闻阅读器应用,其起始屏幕是新闻标题的列表视图. 如果我 ..

什么是“柯里化"?

我在几篇文章和博客中看到了对柯里化函数的引用,但我找不到一个好的解释(或者至少是一个有意义的解释!) 解决方案 柯里化是将一个接受多个参数的函数分解为一系列函数,每个函数只接受一个参数.下面是一个 JavaScript 示例: function add (a, b) {返回 a + b;}添加(3, 4);//返回 7 这是一个函数,它接受两个参数,a 和 b,并返回它们的和.我们现在 ..

是否有 std::function 的独立实现?

我正在开发嵌入式系统,因此代码大小是一个问题.使用标准库将我的二进制大小增加了大约 60k,从 40k 增加到 100k.我想使用 std::function,但我不能证明它是 60k 的.是否有我可以使用的独立实现,或类似的东西?我正在使用它在 c++ 11 中使用绑定变量在成员函数中隐式转换 lambda. 解决方案 60k 来自编译器添加的异常处理,因为 std::function ..
发布时间:2022-01-25 12:30:11 C/C++开发

是否有使用代数数据类型或多态性的 OOP 抽象类的 Haskell 等价物?

在 Haskell 中,是否可以编写一个带有签名的函数,该函数可以接受两种不同(尽管相似)的数据类型,并根据传入的类型进行不同的操作? 一个例子可能会让我的问题更清楚.如果我有一个名为 myFunction 的函数,以及两个名为 MyTypeA 和 MyTypeB 的类型,我可以定义 myFunction 以便它只能接受 MyTypeA 或 MyTypeB 类型的数据作为它的第一个参数? ..

我可以将任意函数传递给 Scala 中的另一个函数吗?

我是 Scala 的新手,能够将函数传递给其他函数非常简洁——但是我可以将 任意 函数引用传递给另一个函数吗?所述功能参数的元数将是固定的(也就是说,我也很好奇您是否也可以传递具有任意元数的函数).我一直被类型错误绊倒.我试过使用 Any 但它似乎没有帮助. 例如,我有以下代码: class CodeRunner(val user_defined: (Int) => Unit) {def ..

Haskell 的多态风格是什么?

使用 Haskell 的类型类,它似乎启用了即席多态,但它的函数声明似乎是参数多态.我是否混合了我对不同事物的理解? 解决方案 确实,Haskell 支持(更高级别的)参数多态性和 ad hoc(或 有界)多态性.Haskell 中的参数多态性通过其 Hindley-Milner/System F 类型系统得到支持.通过类型类支持临时多态性. 关于类型类和即席多态性的起源,请参阅 W ..

人们使用身份功能做什么?

例如,Haskell 有 id 函数,Julia 有 identity 函数,SO 的很多问题都涉及到identity 函数.(我想在 Python 中你可以做 lambda x:x) 我一直在绞尽脑汁想这个功能的用例;我失败了. 身份函数的目的是什么,它的常见用例是什么? 解决方案 请记住,在 Haskell 中,函数是一等值,可以像其他值一样用作数据,并作为参数传递给其他函 ..
发布时间:2022-01-23 19:05:15 其他开发