Tag: 函数式编程

_.each(list,iterator,)中的上下文是什么?

我是underscore.js的新手。 _.each()的[context]的目的是什么? 应该如何使用?

在Scala中foldLeft和reduceLeft之间的区别

我学到了foldLeft和reduceLeft的基本区别 foldLeft: 初始值必须通过 reduceLeft: 将集合的第一个元素作为初始值 抛出exception,如果收集是空的 还有其他的区别吗? 有两个具有相似function的方法的具体原因?

zygohistomorphic prepromorphisms的真实世界的应用

是的, 这些 : {-#LANGUAGE TypeOperators, RankNTypes #-} import Control.Morphism.Zygo import Control.Morphism.Prepro import Control.Morphism.Histo import Control.Functor.Algebra import Control.Functor.Extras import Control.Functor.Fix import Control.Comonad.Cofree zygohistomorphic_prepromorphism :: Functor f => Algebra fb -> GAlgebra f (ZygoT (Cofree f) b) a -> (f :~> f) -> FixF f -> a zygohistomorphic_prepromorphism f = g_prepro (distZygoT (liftAlgebra f) (distHisto id)) 是的,我知道他们是( […]

为什么在Haskell中将副作用build模为monad?

任何人都可以提供一些关于为什么Haskell中的不纯计算被build模为monad的指针吗? 我的意思是monad只是一个有4个操作的接口,那么在其中build模的副作用是什么呢?

string列表到一个string

让我们说你有一个: List<string> los = new List<string>(); 在这个疯狂的function世界中,我们生活在这些日子里,其中一个最好的方式是通过连接这些来创build一个string: String.Join(String.Empty, los.ToArray()); StringBuilder builder = new StringBuilder(); los.ForEach(s => builder.Append(s)); string disp = los.Aggregate<string>((a, b) => a + b); 或简单的旧的StringBuilder的foreach 或者,还有更好的方法?

函数式编程是否有软件工程方法?

如今所教授的软件工程完全专注于面向对象的编程和面向世界的“自然”面向对象视图。 有一个详细的方法,描述了如何通过几个步骤和许多(UML)工件(如用例图或类图)将域模型转换为类模型。 许多程序员已经内化了这种方法,并且对如何从头开始devise一个面向对象的应用程序有了一个好主意。 新的炒作function编程,这是在许多书籍和教程中教授。 但是function软件工程呢? 在阅读Lisp和Clojure时,我发现了两个有趣的陈述: function程序通常是自下而上的,而不是自上而下(“On Lisp”,Paul Graham) function程序员使用OO程序员使用对象/类的地图(“Clojure for Java程序员”,由Rich Hickley讲话)。 那么,一个function性应用程序的系统化(基于模型)devise的方法是什么呢,例如在Lisp或Clojure中呢? 什么是常见步骤,我使用的是什么工件,我如何将它们从问题空间映射到解决scheme空间?

在函数式编程中,函数是什么?

在阅读关于函数式编程的各种文章时,我碰到过几次“函子”,但作者通常假设读者已经理解了这个术语。 环顾networking提供了过度的技术性描述(参见维基百科文章 )或难以置信的模糊描述(请参阅此ocaml教程网站上有关Functors的部分)。 有人可以善意地定义这个术语,解释它的用法,或者提供一个关于如何创build和使用函子的例子。 编辑 :虽然我对这个术语背后的理论很感兴趣,但是我对这个理论的兴趣并不比我在这个概念的实现和实际应用上感兴趣。 编辑2 :看起来有一些交叉terminoligy进行:我特指函数式编程functors,而不是C ++的函数对象。

Scala中的“提升”是什么?

有时当我阅读Scala生态系统中的文章时,我读到了“提升”/“提升”的术语。 不幸的是,这并没有解释到底是什么意思。 我做了一些研究,似乎解除与function价值或类似的东西有关,但我无法find一个文本,解释以新手友好的方式实际上提升。 Lift框架有一个额外的混淆,那就是它的名字已经提升了,但是它并没有帮助回答这个问题。 Scala中的“提升”是什么?

滥用代数数据types的代数 – 为什么这会起作用?

代数数据types的“代数”expression式对于具有math背景的人来说看起来非常具有启发性。 让我试着解释我的意思。 定义了基本types 产品• 联盟+ 辛格尔顿X 第一单元 对X+X使用简写X²代表X•X和2X ,然后我们可以定义代数expression式,例如链表 data List a = Nil | Cons a (List a) data List a = Nil | Cons a (List a) ↔L L = 1 + X • L 和二叉树: data Tree a = Nil | Branch a (Tree a) (Tree a) data Tree a = Nil […]

斯卡拉的案例class和class级有什么区别?

我在谷歌searchfind一个case class和一个class之间的差异。 大家都提到,当你想在类上进行模式匹配时,使用case类。 否则,使用类,也提到一些额外的津贴,如等于和哈希代码覆盖。 但是,这些是唯一一个应该使用案例类而不是类的原因吗? 我想在Scala中这个function应该有一些非常重要的原因。 什么是解释或有一个资源来了解更多关于斯卡拉案例类从?