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

functional-programming - 函数式编程有什么好处?

你认为函数式编程的好处是什么?它们如何适用于今天的程序员?

函数式编程和 OOP 之间最大的区别是什么?

0 投票
2 回答
1603 浏览

functional-programming - 列出方案的理解库?

我知道有一个用于通用 lisp ( incf-cl ) 的列表理解库,我知道它们在各种其他功能性(和一些非功能性)语言(F#、Erlang、Haskell 和 C#)中都受到原生支持 - 有没有Scheme的列表理解库?

incf-cl 在 CL 中作为一个使用宏的库来实现——难道不能使用相同的技术为 Scheme 创建一个吗?

0 投票
2 回答
978 浏览

f# - F# 中的全文搜索引擎示例?

有没有关于如何在 F# 中构建全文搜索引擎的好例子(网站或书籍)?

0 投票
3 回答
4660 浏览

c++ - c++ boost lambda 库

使用 boost lambda 库开始编程的最佳方式可能是什么。

0 投票
2 回答
1735 浏览

ajax - 自动测试 AJAX Web UI 时使用延迟的替代方法

我很快将致力于 AJAX 驱动的网页,这些网页具有从 Web 服务 (WCF) 生成的大量内容。

我过去测试过这种东西(并且发现它很容易),但没有这种级别的动态内容。

我正在使用 Visual Studio 2008 在 .NET 3.5 中进行开发。我设想在以下环境中进行此测试:

  1. 测试驱动.NET
  2. MBUnit(虽然这不是单元测试)
  3. 某种控制浏览器的自动化工具(也许是 Selenium,虽然它可能是 SWEA 或 Watin。我在想 IE、Firefox,可能还有 Opera 和 Safari。)

过去我在测试浏览器时使用过延迟。我不是特别喜欢这样做,而且会浪费时间。

有什么经验和实践可以比使用等待做得更好。也许引入回调和函数式编程来运行测试?


注释 1. 查看前 3 个回复后的详细信息。

1) 感谢 Alan、Eran 和 marxidad,您的回复让我走上了获得答案的道路,希望不会花费太多时间。

2) 另一个细节,我使用jQuery来运行 Ajax,所以这不是在 Asp.NET AJAX 中构建的。

3)我发现一篇文章很好地说明了这种情况。它来自http://adamesterline.com/2007/04/23/watin-watir-and-selenium-reviewed/

3.1) Selenium示例(这个和下一个,WatiN,代码示例没有显示在原始网页中(在 IE 或 Firefox 上),所以我已经提取它们并在此处列出它们。)

3.2) WatiN样本

3.3) 如果您查看这些显然等效的示例,您会发现 WatiN 示例已经抽象掉了 waits

3.4) 然而,WatiN 可能需要额外支持由 Ajax 调用更改的值,如http://watinandmore.blogspot.com/2008/01/using-watin-to-test-select-lists-in.html中所述。在那篇文章中,页面被赋予了一个额外的字段,可用于合成更改的事件,如下所示:

4)现在我所追求的是一种方法,可以在没有合成事件的情况下执行我们在 WatiN 代码中看到的操作。这可能是一种直接挂钩事件的方法,例如更改的事件。我也不会遇到回调问题,尽管这可能会改变测试的编码方式。我还认为,随着 C# 3、VB 9 和 F# 中的新功能的影响开始深入(并且不介意对此进行探索),我们将看到编写测试的替代方法。

5) marxidad,我的来源没有来自 WebAii 的样本,所以我对这个看起来很有趣的工具没有任何评论。


注释 2. 2008-09-29。经过一些独立于此页面的反馈。

5) 我试图为上面的 WatiN 示例代码获取更完整的源代码。不幸的是,它不再可用,链接已失效。这样做时,我注意到 DSL,大概是在网页和自动化工具之间映射的模型。我没有找到这方面的细节。

6) 对于 WebAii,建议使用这样的代码(未经测试):

6)从代码中我可以清楚地避免等待和延迟,使用一些框架,但我需要花更多的时间来看看 WatiN 是否适合我。

0 投票
2 回答
980 浏览

functional-programming - SML 中的原型设计功能

我有两个函数,fg,它们以递归方式相互调用。不幸的是,当f调用它时g,它还没有被声明,所以我得到一个“未绑定变量”错误。我如何在 SML/NJ 中对这个函数进行原型设计(或任何等效词汇)?

0 投票
3 回答
1772 浏览

generics - 有没有办法确定 Lua 函数的签名?

最近,Lee Baldwin展示了如何编写一个通用的可变参数记忆函数。我认为最好返回一个只需要一个参数的更简单的函数。这是我的虚假尝试:

显然,select('#', ...)在这种情况下失败了,无论如何也不会真正做我想做的事。有没有办法告诉内部memoize f期望多少个参数?


如果您确定,“不”是一个很好的答案。使用两个独立的memoize函数没什么大不了的。

0 投票
6 回答
19390 浏览

haskell - 如何在现实世界中使用函数式编程?

函数式语言很好,因为它们通过消除状态来避免错误,还因为它们可以轻松地为您自动并行化,而不必担心线程数。

不过,作为 Win32 开发人员,我可以将 Haskell 用于我的应用程序的某些 dll 吗?如果我这样做了,是否会自动为我带来真正的优势?如果是这样,是什么给了我这个优势,编译器?

F# 是否会自动为您并行化您跨多个内核和 cpu 编写的函数?你会看到任务管理器中的线程数增加吗?

基本上我的问题是,我怎样才能以实际的方式开始使用 Haskell,如果我这样做,我真的会看到一些好处吗?

0 投票
7 回答
5706 浏览

f# - 未来 F# 是否有可能比其他 .Net 语言优化得更多?

微软是否有可能让 F# 程序在 VM 执行时或更可能在编译时检测到程序是用函数式语言构建的并自动更好地并行化它?

现在我相信没有这样的努力来尝试自动执行一个作为单线程程序构建为多线程程序的程序。

也就是说,开发人员将编写一个单线程程序。并且编译器会输出一个编译的程序,该程序是多线程的,在需要时带有互斥锁和同步。

这些优化会在任务管理器中的进程线程数中可见,还是会比这更低?

0 投票
8 回答
18146 浏览

javascript - Javascript 作为一种函数式语言

我希望掌握函数式编程概念。

我多年来一直使用 Javascript 在 Web 应用程序中进行客户端脚本编写,除了使用原型之外,它都是简单的 DOM 操作、输入验证等。

最近,我经常读到Javascript 是支持函数式编程的语言之一。

以我对 Javascript 的熟悉和经验,我更喜欢用它来学习函数式编程。我希望我能够更多地专注于主要的功能概念,而不会被全新的语法所困扰或分心。

综上所述,Javascript 是学习函数式编程概念的好选择吗?Javascript 中的哪些功能是相关/支持函数式编程的?