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

programming-languages - 测量单位是 F# 独有的吗?

我正在阅读 Andrew Kennedy 的关于F# 中的度量单位的系列博文,在很多情况下这很有意义。有没有其他语言有这样的系统?

编辑:更清楚地说,我的意思是灵活的测量单位系统,您可以在其中任意定义自己的。

0 投票
6 回答
9362 浏览

xslt - XSLT 是一种函数式编程语言吗?

关于函数式编程语言的几个问题让我开始思考 XSLT 是否是一种函数式编程语言。如果没有,缺少哪些功能?XSLT 2.0 是否缩短或缩小了差距?

0 投票
1 回答
1165 浏览

functional-programming - Jan Willem Klop 的“(LL L...)”Y 组合器是如何工作的?

我了解Y Combinator 是什么,但我不了解来自Wikipedia 页面的“新颖”组合器示例:

这是如何运作的?

0 投票
11 回答
22527 浏览

math - 了解 lambda 演算有多大帮助?

致所有了解lambda 演算的人:关于编程,它给你带来了什么好处?你会建议人们学习它吗?

0 投票
5 回答
4097 浏览

ruby - 在 Ruby 中,'yield call out of block' 是什么意思?

我是 Ruby 新手,我正在尝试以下方法:

但我得到了“块外调用的产量”错误。我不确定他的意思。顺便说一句,这个问题是我在这里问的一个更一般的问题的一部分。

0 投票
2 回答
1822 浏览

visual-studio-2005 - 在 Visual Studio 2005 中设置 F#

在 Visual Studio 2005 中设置 F# 是否有任何体面的教程?我在 VS2008 上找到的所有内容。

即:项目下的“F#项目”等。

0 投票
15 回答
6034 浏览

programming-languages - 多核和并发 - 语言、库和开发技术

CPU 架构格局发生了变化,多核是一种趋势,它将改变我们开发软件的方式。我用 C、C++ 和 Java 做过多线程开发,我用各种 IPC 机制做过多进程开发。对于开发人员来说,使用线程的传统方法似乎并不容易使用支持高度并发的硬件。

您知道哪些语言、库和开发技术有助于缓解创建并发应用程序的传统挑战?我显然在考虑死锁和竞争条件等问题。设计技术、库、工具等也很有趣,它们有助于实际利用并确保利用可用资源——仅仅编写一个安全、健壮的线程应用程序并不能确保它使用了所有可用的内核。

到目前为止我看到的是:

  • Erlang:基于进程,消息传递 IPC,'actor 的并发模型
  • Dramatis:Ruby 和 Python 的演员模型库
  • Scala:用于 JVM 的函数式编程语言,增加了一些并发支持
  • Clojure:用于 JVM 的函数式编程语言,带有演员库
  • Termite : Erlang 进程方法和消息传递给 Scheme 的一个端口

你还知道什么,什么对你有用,你认为什么有趣?

0 投票
14 回答
899 浏览

python - 我如何用 Ruby/Python 编写这个?或者,你能把我的 LINQ 翻译成 Ruby/Python 吗?

昨天,我问了这个问题,但从来没有真正得到我真正满意的答案。我真的很想知道如何使用诸如 Ruby 之类的函数式语言来生成一个包含 N 个唯一随机数的列表,而不必在风格上非常迫切。

因为我没有看到任何我真正喜欢的东西,所以我编写了我在 LINQ 中寻找的解决方案:

你能把我的 LINQ 翻译成 Ruby 吗?Python?还有其他函数式编程语言吗?

注意:请尽量不要使用太多的循环和条件 - 否则解决方案是微不足道的。另外,我宁愿看到一个解决方案,您不必生成比 N 大得多的数组,这样您就可以删除重复项并将其修剪为 N。

我知道我很挑剔,但我真的很想看到一些优雅的解决方案来解决这个问题。谢谢!

编辑:
为什么所有的反对票?

最初我的代码示例在 Take() 之后有 Distinct(),正如许多人指出的那样,这可能会给我留下一个空列表。我已经更改了调用这些方法的顺序,以反映我最初的意思。

道歉:
有人告诉我这篇文章相当势利。我并不是要暗示 LINQ 比 Ruby/Python 更好。或者我的解决方案比其他人的解决方案要好得多。我的目的只是学习如何在 Ruby 中做到这一点(有一定的限制)。如果我被认为是个混蛋,我很抱歉。

0 投票
6 回答
6638 浏览

functional-programming - 现实世界中的清洁编程语言?

是否有任何用Clean编程语言编写的真实世界应用程序?无论是开源的还是专有的。

0 投票
11 回答
3212 浏览

f# - 如果您已经了解 LISP,为什么还要学习 F#?

当您已经熟悉 LISP 时,学习 F# 的附加值是什么?