问题标签 [functional-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
5016 浏览

f# - 在 F# 中传递函数

是否可以将对函数的引用传递给 F# 中的另一个函数?具体来说,我想传递 lambda 函数,例如

富(乐趣 x -> x ** 3)

更具体地说,我需要知道如何在我自己编写的函数中引用传递的函数。

0 投票
5 回答
31484 浏览

haskell - Haskell 和 F# 之间的主要区别是什么?

我在 Internet 上搜索了F#Haskell之间的比较,但没有找到任何真正确定的东西。主要区别是什么?为什么我要选择其中一个?

0 投票
47 回答
289767 浏览

haskell - 什么是单子?

最近对 Haskell 进行了简要介绍,对于 monad 本质上是什么,有什么简短、简洁、实用的解释?

我发现我遇到的大多数解释都相当难以理解并且缺乏实际细节。

0 投票
6 回答
8193 浏览

functional-programming - Lisp 中的列表操作

我一直在到处寻找 Lisp 中的以下功能,但一无所获:

  1. 在列表中找到某物的索引。例子:

    /li>
  2. 替换列表中特定位置的内容。例子:

    /li>
  3. 返回特定索引处的项目。例子:

    /li>

到目前为止,我一直在用我自己的函数来伪装它。我想知道我是否只是在为自己创造更多的工作。

这就是我一直在伪造数字 1 的方式:

0 投票
3 回答
201 浏览

linq - 使用 LINQ 映射集合

我有一个对象集合,我想添加一个新属性。我如何用 LINQ 做到这一点?

0 投票
2 回答
775 浏览

algorithm - 如何用函数式语言编写简单的树算法?

假设我想实现一个相当有效的“关键字识别算法”,首先给出一个关键字列表,然后如果另一个给定的单词在列表中,则必须回答。

在命令式语言中,我会将关键字存储在树中(每个字符一个节点)。然后,当接收到要测试的单词时,我会扫描我的树以测试该单词是否是关键字。

我想了解如何用功能语言对这种算法进行编码。如何在保持“命令式”算法的效率的同时获得“无状态”编程的好处。如果您不想每次都重建它,是否有必要在查找之间的某处存储树?

0 投票
5 回答
2000 浏览

haskell - F# 中的 Haskell 列表差分运算符

\\F# 中是否有与 Haskell 的列表差分运算符等效的运算符?

0 投票
1 回答
4980 浏览

f# - 如何在 F# 类中定义和使用静态变量

有没有办法让 F# 类中的可变静态变量与 C# 类中的静态变量相同?

0 投票
3 回答
928 浏览

f# - 任何人都有 --standalone 选项在 F# CTP 中工作?

我可能完全错了,但我的理解是 --standalone 编译器选项告诉编译器在 exe 中包含 F# 核心和其他依赖项,这样您就可以在另一台机器上运行它而无需安装任何“运行时”。

但是,我不能让它在 CTP 中工作——它甚至似乎都没有改变输出文件的大小(我读过的文档说额外增加了 1M)。

“谷歌可能知道,但如果它知道,它并没有说明,或者我没有找对地方”

更新:

它似乎适用于最新的 CTP更新 1.9.6.2

更新2:

从那以后,我遇到了另一个错误:

如果您在尝试编译 --standalone 时遇到此类错误,则需要在项目中明确包含它们作为引用。

0 投票
16 回答
1620 浏览

haskell - 哪些语言实现了函数式编程的特性?

Lisp 很早就在学术界开发了一组有趣的语言特性,但其中大多数从未在生产环境中流行起来。

一些语言,比如 JavaScript,适应了垃圾收集和词法闭包等基本特性,但所有可能真正改变大规模编写程序方式的东西,比如强大的宏、代码即数据和自定义控制结构,只是似乎在其他函数式语言中传播,这些语言都不适用于非平凡的项目。

函数式编程社区还提出了许多其他有趣的想法(除了函数式编程本身),例如引用透明性、通用大小写表达式(即模式匹配,不像 C/C# 开关那样残缺不全)和柯里化函数,这似乎在常规编程中显然很有用,并且应该很容易与现有的编程实践集成,但由于某种原因似乎永远停留在学术界。

为什么这些功能很难被采用?是否有任何现代实用的语言实际上从 Lisp 中学习,而不是半途而废地复制“一流的功能”,或者是否存在使这不可能的内在冲突?