问题标签 [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.
f# - 在 F# 中传递函数
是否可以将对函数的引用传递给 F# 中的另一个函数?具体来说,我想传递 lambda 函数,例如
富(乐趣 x -> x ** 3)
更具体地说,我需要知道如何在我自己编写的函数中引用传递的函数。
haskell - 什么是单子?
最近对 Haskell 进行了简要介绍,对于 monad 本质上是什么,有什么简短、简洁、实用的解释?
我发现我遇到的大多数解释都相当难以理解并且缺乏实际细节。
functional-programming - Lisp 中的列表操作
我一直在到处寻找 Lisp 中的以下功能,但一无所获:
在列表中找到某物的索引。例子:
/li>替换列表中特定位置的内容。例子:
/li>返回特定索引处的项目。例子:
/li>
到目前为止,我一直在用我自己的函数来伪装它。我想知道我是否只是在为自己创造更多的工作。
这就是我一直在伪造数字 1 的方式:
linq - 使用 LINQ 映射集合
我有一个对象集合,我想添加一个新属性。我如何用 LINQ 做到这一点?
algorithm - 如何用函数式语言编写简单的树算法?
假设我想实现一个相当有效的“关键字识别算法”,首先给出一个关键字列表,然后如果另一个给定的单词在列表中,则必须回答。
在命令式语言中,我会将关键字存储在树中(每个字符一个节点)。然后,当接收到要测试的单词时,我会扫描我的树以测试该单词是否是关键字。
我想了解如何用功能语言对这种算法进行编码。如何在保持“命令式”算法的效率的同时获得“无状态”编程的好处。如果您不想每次都重建它,是否有必要在查找之间的某处存储树?
haskell - F# 中的 Haskell 列表差分运算符
\\
F# 中是否有与 Haskell 的列表差分运算符等效的运算符?
f# - 如何在 F# 类中定义和使用静态变量
有没有办法让 F# 类中的可变静态变量与 C# 类中的静态变量相同?
f# - 任何人都有 --standalone 选项在 F# CTP 中工作?
我可能完全错了,但我的理解是 --standalone 编译器选项告诉编译器在 exe 中包含 F# 核心和其他依赖项,这样您就可以在另一台机器上运行它而无需安装任何“运行时”。
但是,我不能让它在 CTP 中工作——它甚至似乎都没有改变输出文件的大小(我读过的文档说额外增加了 1M)。
“谷歌可能知道,但如果它知道,它并没有说明,或者我没有找对地方”
更新:
它似乎适用于最新的 CTP更新 1.9.6.2
更新2:
从那以后,我遇到了另一个错误:
如果您在尝试编译 --standalone 时遇到此类错误,则需要在项目中明确包含它们作为引用。
haskell - 哪些语言实现了函数式编程的特性?
Lisp 很早就在学术界开发了一组有趣的语言特性,但其中大多数从未在生产环境中流行起来。
一些语言,比如 JavaScript,适应了垃圾收集和词法闭包等基本特性,但所有可能真正改变大规模编写程序方式的东西,比如强大的宏、代码即数据和自定义控制结构,只是似乎在其他函数式语言中传播,这些语言都不适用于非平凡的项目。
函数式编程社区还提出了许多其他有趣的想法(除了函数式编程本身),例如引用透明性、通用大小写表达式(即模式匹配,不像 C/C# 开关那样残缺不全)和柯里化函数,这似乎在常规编程中显然很有用,并且应该很容易与现有的编程实践集成,但由于某种原因似乎永远停留在学术界。
为什么这些功能很难被采用?是否有任何现代实用的语言实际上从 Lisp 中学习,而不是半途而废地复制“一流的功能”,或者是否存在使这不可能的内在冲突?