问题标签 [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 投票
7 回答
6336 浏览

database - 函数到关系映射比对象到关系更容易吗?

对象关系映射已得到很好的讨论,包括在这里。我有一些方法以及陷阱和妥协的经验。真正的解决似乎需要对 OO 或关系模型本身进行更改。

如果使用函数式语言,是否会出现同样的问题?在我看来,这两种范式应该比 OO 和 RDBMS 更好地结合在一起。在 RDBMS 中以集合方式思考的想法似乎与函数式方法所承诺的自动并行性相吻合。

有没有人有任何有趣的意见或见解?行业现状如何?

0 投票
15 回答
155375 浏览

function - “闭包”和“lambda”有什么区别?

有人可以解释一下吗?我了解它们背​​后的基本概念,但我经常看到它们可以互换使用,我感到困惑。

既然我们在这里,它们与常规函数有何不同?

0 投票
2 回答
569 浏览

c++ - 将自定义函子与 std::generate_n() 算法一起使用的正确方法?

以下代码在 XPSP3 上的 VC++ 8 下正确编译,但运行它会导致运行时错误。

我的标题看起来像:

我的实现看起来像:

这编译得很好,它会生成一个异常(不是头文件中定义的 logic_error 异常)。

如果我将实现更改为使用函数而不是仿函数,它将起作用:

在这里使用仿函数有什么问题?

0 投票
7 回答
5559 浏览

haskell - 使用 foldr 实现 zip

我目前正在阅读 Real World Haskell 的第 4 章,我正试图围绕使用 foldr 来实现 foldl

(这是他们的代码:)

我想我会尝试zip使用相同的技术来实现,但我似乎没有取得任何进展。甚至可能吗?

0 投票
5 回答
4086 浏览

javascript - Javascript/ECMAScript 中函数的范围是什么?

今天我和一位同事讨论了 Javascript 中的嵌套函数:

在这个例子中,试验指出 b 在 a 的主体之外是不可到达的,就像 c 一样。但是,d 是 - 在执行 a() 之后。在ECMAScript v.3 标准中寻找这种行为的确切定义,我没有找到我正在寻找的确切措辞;Sec.13 p.71没有说的是,函数声明语句创建的函数对象要绑定到哪个对象。我错过了什么吗?

0 投票
10 回答
31774 浏览

python - Python中列表的模式匹配

我想对 Python 中的列表进行一些模式匹配。例如,在 Haskell 中,我可以执行以下操作:

所以当我传入一个列表时,head将是第一个元素,并且rest将是尾随元素。

同样,在 Python 中,我可以自动解包元组:

我想对 Python 中的列表做类似的事情。现在,我有一个返回列表的函数,以及执行以下操作的代码块:

我想知道我是否可以用 Python 的一行而不是两行来做到这一点。

0 投票
18 回答
8724 浏览

functional-programming - 你会用哪种语言自学SICP?

我已经抓住了真正学习函数式编程的错误。所以我的下一个自学项目是学习计算机程序的结构和解释。不幸的是,我从来没有学过 Lisp,因为我在大学时不是 CS 专业的。

虽然 SICP 不强调编程工具,但做练习需要选择一种类似 Lisp 的语言来使用。似乎Scheme的一些实施将是阻力最小的路径。另一方面,我听说其他人使用过Common LispClojure。在我看来,Common Lisp 或 Clojure 更有可能用于生产代码,因此对我的简历来说稍微好一些。顺便说一句,我完全明白学习一门语言本身是值得的,但学习一门有助于我的简历的语言仍然是一种好处。我是一个资本家,也是一个关于我的学习的学者。

如果你必须自学 SICP,你会选择哪种语言,为什么?理想情况下,我想使用一种可以在 JVM 上运行的语言。我当然可以使用 REPL 与 bash 和 emacs 一起使用的语言。

补充:你们有没有人尝试过不使用 Scheme 来阅读 SICP?如果是这样,你的经历是怎样的?

0 投票
3 回答
10588 浏览

f# - F#中的逻辑否定运算符?(!-相等的)

C#中的“!”等价于什么?F# 中的运算符?

0 投票
5 回答
2176 浏览

functional-programming - 功能点与 kloc 比率作为软件指标......“名称调整”指标?

您如何看待使用功能点到代码行的度量作为度量?

这让我想起了旧游戏节目“Name That Tune”。“我可以用三个音符来命名那首曲子!” 我可以在 0.1 klocs 中编写该功能!这有用吗?

它似乎肯定会促进图书馆的使用,但这是你想要的吗?

0 投票
9 回答
1501 浏览

functional-programming - 函数式编程:最佳平台/环境

我最近一直在研究和玩函数式编程,只是为了拓宽我对编程的思考,因为我发现“函数式”思考很困难。

我已经下载了 Glasgow Haskell 并进行了实验。

我想知道的是,Windows 试验 FP 的最佳平台是什么?我更喜欢基于 JVM 的方法,但是关于 SO 的另一篇文章表明,由于缺乏对尾递归的支持,无法在 JVM 上实现真正的 FP 语言。你说什么?

编辑:正如我所说,我已经对 Haskell 进行了相当多的实验;根据我一直在查看 Scala 网站的答案之一的建议。查看 Scala 示例,代码似乎更“熟悉”(我的背景是 C 和 Java),但它似乎显然更多的是 OO/过程性和更少的功能。Scala 的一个巨大优势在于,它为我提供了另一种与 Java 一起使用的语言工具,并且可以成为我目前专业箭袋的另一个箭头,而不仅仅是一个学习练习。当我更深入地了解 Scala 时,功能方面会变得更加重要,还是我会倾向于只编写具有一些功能影响的 OO 代码?换句话说,Haskell 会比 Scala 更难更快地挑战我的先入之见吗?