Tag: 函数式编程

我如何在Clojure中抛出exception?

我想抛出一个例外,并有以下几点: (throw "Some text") 但似乎被忽略。

纯function编程语言中的双链表

如何用纯粹的function语言去做双向链表呢? 那就是Haskell,你不在Monad中,所以你没有突变。 可能吗? (单链表显然很容易)。

有没有使用尾recursion不能写的问题?

尾recursion是function语言中一个重要的性能优化策略,因为它允许recursion调用消耗常量栈(而不是O(n))。 是否有任何问题不能用尾recursion的方式来编写,还是总是可以把一个简单recursion函数转换成尾recursion函数? 如果是这样的话,有一天function编译器和解释器可以足够聪明地自动执行转换?

Python中的any()函数带callback

Python标准库定义了一个any()函数 如果迭代的任何元素为真,则返回True。 如果迭代是空的,则返回False。 它只检查元素是否评估为True 。 我希望它能够指定一个callback来判断一个元素是否符合这个法案: any([1, 2, 'joe'], lambda e: isinstance(e, int) and e > 0)

Scala函数式编程比传统编码慢吗?

在我创buildfunction代码的第一次尝试之一,我遇到了性能问题。 我从一个共同的任务开始 – 将两个数组的元素相乘并总结结果: var first:Array[Float] … var second:Array[Float] … var sum=0f; for (ix<-0 until first.length) sum += first(ix) * second(ix); 这是我改革工作的方式: sum = first.zip(second).map{ case (a,b) => a*b }.reduceLeft(_+_) 当我对这两种方法进行基准testing时,第二种方法需要40倍的时间才能完成! 为什么第二种方法需要更长时间? 我怎样才能改变工作既高效又利用函数式编程风格?

为什么Clojuredynamicinput?

我非常喜欢的一件事是阅读不同的编程语言。 目前我正在学习Scala,但这并不意味着我对Groovy,Clojure,Python等等不感兴趣。 所有这些语言都有独特的外观和感觉以及一些特征。 在clojure的情况下,我不明白这些devise决定之一。 据我所知,Clojure非常重视它的function范例,并且强迫你尽可能使用不可变的“variables”。 所以如果你的一半数值是不变的,为什么这个语言是dynamicinput的呢? clojure网站说: 首先,Clojure是dynamic的。 这意味着一个Clojure程序不只是你编译和运行的东西,而是你可以与之交互的东西。 那听起来很奇怪。 如果一个程序被编译,你不能再改变它了。 当然,你可以与它“交互”,这就是用户界面,但网站当然不意味着一个整洁的“dynamic”graphics用户界面。 Clojure如何从dynamictypes中受益 我的意思是Clojure的特殊情况,而不是dynamictypes的一般优点。 dynamictypes系统如何帮助改进函数式编程 再一次,我知道不会溢出“int a”的乐趣。 所有的源代码,但types推断可以缓解很多的痛苦。 因此,我只想知道dynamictypes如何支持function语言的概念。

什么(f。)。 g的意思是在Haskell?

我已经看到很多function是根据模式(f .) . g (f .) . g 。 例如: countWhere = (length .) . filter duplicate = (concat .) . replicate concatMap = (concat .) . map 这是什么意思?

有没有任何可certificate的现实世界的语言? (Scala呢?)

我在大学里接受过正规系统的教育,但是我感到失望,他们似乎并没有被用在真正的词汇中。 我喜欢能够知道一些代码(对象,函数,任何)的工作原理,而不是通过testing,而是通过certificate 。 我相信我们都熟悉物理工程和软件工程之间不存在的相似之处(钢铁的performance可以预见,软件可以做任何事 – 谁知道!),我很想知道是否有任何语言可以用在真正的词(是要求一个Web框架太多问)? 我听说过有趣的function语言如scala的可testing性。 作为软件工程师 ,我们有什么select?

除Monad外,还有哪些其他方式可以用纯粹的function语言来处理?

于是我开始把头围绕Monads(在Haskell中使用)。 我很好奇IO或状态可以用纯粹的function语言(理论上还是现实上)处理的其他方式。 例如,有一种叫做“水银”的逻辑语言,它使用“效应types”。 在像Haskell这样的程序中,效果types的工作将会如何? 其他系统如何工作?

“纯”在“纯function语言”中意味着什么?

Haskell被称为“纯function语言”。 在这方面“纯”是什么意思? 这对程序员有什么影响?