Questions tagged «functional-programming»

函数式编程是一种基于使用函数构建抽象,避免副作用和状态改变的编程范例。纯函数式编程是线程安全的。

10
Haskell在现实世界中有什么用?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 Haskell周围有很多炒作,但是,很难获得有关在实际应用中如何使用它的信息。Haskell最受欢迎的项目/用法是什么?为什么它擅长解决这些问题?

16
Scala的案例类和类之间有什么区别?
我在Google中进行搜索,找到了case class和之间的区别class。每个人都提到,当您要在类上进行模式匹配时,请使用用例类。否则,使用类,还提及一些额外的好处,例如equals和哈希码覆盖。但是,这些是为什么应该使用案例类而不是类的唯一原因吗? 我猜应该在Scala中使用此功能有一些非常重要的原因。有什么解释?是否有资源可以从中学习更多有关Scala案例类的信息?


15
可以进行功能GUI编程吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 我最近抓到了FP错误(试图学习Haskell),到目前为止我所看到的内容(一流的函数,惰性评估以及所有其他优点)给我留下了深刻的印象。我还不是专家,但是我已经开始发现“功能上”的推理比基本算法的必要性更容易(而且我很难回头去找)。 但是,当前FP似乎保持不变的一个领域是GUI编程。Haskell方法似乎只是包装命令式GUI工具包(例如GTK +或wxWidgets),并使用“ do”块来模拟命令式样式。我没有使用过F#,但是我的理解是,将OOP与.NET类一起使用时,它可以执行类似的操作。显然,这是有充分的理由的-当前的GUI编程都是关于IO和副作用的,因此在大多数当前的框架中不可能进行纯功能编程。 我的问题是,是否可以使用功能性方法进行GUI编程?我很难想象这在实践中会是什么样子。是否有人知道尝试这种方法的任何框架(实验框架或其他框架)(甚至是为功能性语言从头开始设计的任何框架)?还是仅使用混合方法的解决方案,对于GUI部件使用OOP,对于逻辑使用FP?(我只是出于好奇而问-我很想认为FP是“未来”,但是GUI编程似乎需要填补很大的空白。)


18
什么是Y组合器?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 Y组合器从事物的“功能”方面讲是计算机科学概念。大多数程序员甚至对组合器一无所知。 什么是Y组合器? 组合器如何工作? 它们有什么用? 它们在程序语言中有用吗?

4
“ coalgebra”在编程环境中是什么意思?
我在函数式编程和PLT圈子中曾多次听到过“ coalgebras”一词,尤其是当讨论对象,共面体,透镜等时。对该术语进行谷歌搜索会给出一些页面,其中给出了这些结构的数学描述,这对我来说是非常难以理解的。谁能解释编程中上下文中的代数意味着什么,它们的意义是什么,以及它们与对象和子代之间的关系?

30
为什么使用功能语言?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 我在这里看到了很多有关功能语言和内容的讨论。您为什么要使用一种“传统”语言?他们有什么优势?他们最糟糕的是什么?什么是理想的函数式编程应用程序?

9
为什么Python对于函数式编程不是很好?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 2年前关闭。 改善这个问题 我一直认为函数式编程可以在Python中完成。因此,令我感到惊讶的是,Python在这个问题上没有得到太多提及,而当提及它时,通常不是很积极。但是,没有给出太多的原因(缺少模式匹配和代数数据类型)。所以我的问题是:为什么Python对于函数式编程不是很好?除了缺乏模式匹配和代数数据类型之外,还有其他原因吗?还是这些概念对函数式编程如此重要,以致于不支持它们的语言只能被归类为一流的函数式编程语言?(请记住,我在函数式编程方面的经验非常有限。)



7
滥用代数数据类型的代数-为什么这样做有效?
对于具有数学背景的人来说,代数数据类型的“代数”表达式非常有启发性。让我尝试解释一下我的意思。 定义了基本类型 产品 • 联盟 + 辛格尔顿 X 单元 1 并使用简写X²的X•X和2X对X+X等等,我们就可以定义,例如链表代数表达式 data List a = Nil | Cons a (List a) ↔ L = 1 + X • L 和二叉树: data Tree a = Nil | Branch a (Tree a) (Tree a) ↔ T = 1 + X • T² …

3
map()函数内部的索引
我缺少一个选项,如何map使用Listfrom 获取函数内部的索引号Immutable.js: var list2 = list1.map(mapper => { a: mapper.a, b: mapper.index??? }).toList(); 文档显示的是map()回报Iterable<number, M>。有什么优雅的方式可以满足我的需求吗?


11
Java 8的Optional.ifPresent和if-not-Present功能样式?
在Java 8中,Optional如果对象不存在,我想对其进行处理,如果对象不存在,则对它进行处理。 if (opt.isPresent()) { System.out.println("found"); } else { System.out.println("Not found"); } 但是,这不是“功能样式”。 Optional有一个ifPresent()方法,但是我无法链接一个orElse()方法。 因此,我不能写: opt.ifPresent( x -> System.out.println("found " + x)) .orElse( System.out.println("NOT FOUND")); 回复@assylias,我认为不适Optional.map()用于以下情况: opt.map( o -> { System.out.println("while opt is present..."); o.setProperty(xxx); dao.update(o); return null; }).orElseGet( () -> { System.out.println("create new obj"); dao.save(new obj); return null; }); …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.