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

javascript - F# 中原型的 Enumerable#pluck?

在 JavaScript 中,使用 Prototype 库,以下函数构造是可能的:

请注意,此示例代码等效于

我想知道在 F# 中是否有类似的东西:

无需写:

这对我来说似乎很有用,因为这样您就不必为每个属性编写函数来访问它们。

0 投票
10 回答
4756 浏览

c# - .NET 有函数式编程库吗?

例如,在 Java 中有Functional JavaHigher-Order Java。两者本质上都提供了一个小的 API,用于操作高阶、柯里化函数,也许还有一些新的数据类型(元组、不可变列表)。

0 投票
11 回答
7020 浏览

.net - F# 中的宏支持

在阅读了 Practical Common Lisp 之后,我终于明白了宏有什么大不了的,并且我一直在为 .NET 平台寻找一种支持它的语言。.NET 有一些 lisp 方言,但据我所知,所有这些方言要么非常 beta,要么被废弃。最近我的兴趣被 Clojure 激发了,但它是针对 java 平台的,虽然可能可以使用 ikvm,但它并没有感觉到一些集成。尤其是当你想做 WPF 之类的东西时。

最近我一直听到关于 F# 的耳语,如果我能找到有关宏支持的任何信息,我试图查看文档,但没有找到。那么有人知道吗?

谢谢 :)

0 投票
7 回答
14020 浏览

architecture - 函数式编程架构

我熟悉面向对象的体系结构,包括使用设计模式和类图进行可视化,并且我知道面向服务的体系结构及其合同和协议绑定,但是对于用函数式编程语言?

我知道 FP 已用于大中型项目。保罗格雷厄姆写了雅虎的第一个化身!存储在 Common Lisp 中。一些 lisp 开发系统很复杂。用函数式语言编写的人工智能和金融系统可以变得相当大。它们都至少有某种固有的架构,不过,我想知道它们是否有任何共同点?

基于表达式评估的架构是什么样的?FP 架构是否更具可组合性?

更新: Kyle 提醒我SICP是这个主题的一个很好的资源。

更新 2:我找到了一篇关于这个主题的好帖子: 函数式编程如何影响你的代码结构?

0 投票
13 回答
6182 浏览

unit-testing - 图形用户界面测试

我正在解决测试我的 GUI 的问题,但我并不完全确定这里的最佳方法。我的 GUI 是使用传统的 MVC 框架构建的,因此我可以轻松地测试 GUI 的逻辑部分,而无需启动 GUI 本身。但是,在测试 GUI 的功能时,我不确定是否应该担心单独测试 GUI 组件,或者是否应该主要关注系统的功能测试。这是一个非常复杂的系统,其中测试 GUI 经常涉及向服务器发送消息,然后观察 GUI 上的响应。我最初的想法是功能测试是这里的方法,因为我需要运行整个系统来真正测试 UI。对此问题的评论将不胜感激。

谢谢,杰夫

0 投票
5 回答
684 浏览

javascript - “部分函数应用程序”在 Javascript 的上下文中是用词不当吗?

我和我的一个朋友正在讨论 Javascript 中的柯里化和部分函数应用程序,对于两者是否可以实现,我们得出了截然不同的结论。我想出了这个实现Function.prototype.curry,这是我们讨论的基础:

使用如下:

在 Spidermonkey 中的输出如下:

他的观点是,由于 Javascriptfunction原语本身并不支持“部分函数应用”,因此将绑定到变量的函数karahi称为部分应用是完全错误的。他的论点是,当vindaloo函数被柯里化时,函数本身被完全应用并返回一个闭包,而不是“部分应用的函数”。

现在,我的观点是,虽然 Javascript 本身不支持其function原语中的部分应用程序(不像 ML 或 Haskell),但这并不意味着您不能创建该语言的高阶函数,它能够封装部分应用函数的概念。此外,尽管被“应用”,函数的范围仍然绑定到它返回的闭包,导致它保持“部分应用”。

哪个是对的?

0 投票
18 回答
122000 浏览

functional-programming - 什么是 Y 组合器?

Y 组合器是从事物的“功能”方面来看的计算机科学概念。大多数程序员对组合子一无所知,即使他们听说过它们。

  • 什么是 Y 组合器?
  • 组合器如何工作?
  • 它们有什么用?
  • 它们在程序语言中有用吗?
0 投票
9 回答
6073 浏览

f# - -> 在 F# 中是什么意思?

一段时间以来,我一直在尝试打开和关闭 F#,但我一直被推迟。为什么?

因为无论我尝试查看哪个“初学者”资源,我都会看到非常简单的示例,这些示例开始使用 operator ->

但是,到目前为止,我还没有找到任何地方可以清楚简单地解释此运算符的含义。就好像它必须如此明显,以至于即使完成新手也不需要解释。

因此,我必须非常密集,或者可能是近 3 年的经验使我退缩了。

有人可以请解释一下或指出一个真正可访问的资源来解释它吗?

0 投票
4 回答
5140 浏览

functional-programming - 是否有函数式编程语言的本机编译器

Joel Spolsky赞扬了不依赖于运行时的程序的本机代码版本。

哪些本机代码编译器可用于函数式语言?

0 投票
5 回答
859 浏览

c# - F# 和企业软件

作为 1.0 版以来的 C# 开发人员,F# 占据了我过去几周的空闲时间。现在出售的计算机有 2、4 .. 内核和多线程并不总是很容易实现。

目前,我看到 F# 在处理复杂和/或繁重的工作负载方面具有巨大潜力。您认为 F# 会(曾经是 RTM)成为企业软件市场的重要参与者吗?