Tag: 语言function

Ruby是一种function性语言吗?

维基百科说Ruby是一种function性语言,但我不相信。 为什么或者为什么不?

为什么python dict.update()没有返回对象?

我正在尝试做: award_dict = { "url" : "http://facebook.com", "imageurl" : "http://farm4.static.flickr.com/3431/3939267074_feb9eb19b1_o.png", "count" : 1, } def award(name, count, points, desc_string, my_size, parent) : if my_size > count : a = { "name" : name, "description" : desc_string % count, "points" : points, "parent_award" : parent, } a.update(award_dict) return self.add_award(a, siteAlias, alias).award 但是如果在function上感觉真的很麻烦,而且我宁愿做: return self.add_award({ "name" : […]

什么是函数式编程的“折叠”函数的“pythonic”?

在Haskell中实现类似以下内容的最习惯的方法是什么: foldl (+) 0 [1,2,3,4,5] –> 15 或者在Ruby中相当于: [1,2,3,4,5].inject(0) {|m,x| m + x} #> 15 很明显,Python提供了reduce函数,这是fold的一个实现,正如上面那样,但是我被告知,pythonic的编程方式是避免lambda项和高阶函数,在可能的情况下更喜欢list-comprehensions。 因此,是否有一种在Python中不是reduce函数的列表或列表结构的优选方式,还是reduce了实现这种方式的惯用方式?

Ruby是否执行尾巴呼叫优化?

函数式语言导致使用recursion来解决很多问题,因此其中许多执行尾巴呼叫优化(TCO)。 TCO导致从另一个函数(或其本身,在这种情况下该函数也被称为TCOrecursion消除,这是TCO的一个子集)调用函数,作为该函数的最后一步,不需要新的堆栈帧,这减less了开销和内存使用。 Ruby显然已经从function语言(lambdas,像map等等的函数)中“借用了”一些概念,这让我很好奇:Ruby是否执行尾部调用优化?

在R函数中指定可选参数的“正确”方式

我对在R中使用可选参数编​​写函数的“正确”方法感兴趣。随着时间的推移,我偶然发现了几条代码,它们在这里采用不同的路线,而我找不到合适的(官方)位置关于这个话题。 直到现在,我已经写了这样的可选参数: fooBar <- function(x,y=NULL){ if(!is.null(y)) x <- x+y return(x) } fooBar(3) # 3 fooBar(3,1.5) # 4.5 如果只提供了x ,函数只返回它的参数。 它为第二个参数使用默认的NULL值,如果该参数碰巧不是NULL ,那么函数会添加这两个数字。 或者,可以像这样编写函数(其中第二个参数需要按名称指定,但也可以unlist(z)或定义z <- sum(…) ): fooBar <- function(x,…){ z <- list(…) if(!is.null(z$y)) x <- x+z$y return(x) } fooBar(3) # 3 fooBar(3,y=1.5) # 4.5 我个人更喜欢第一个版本。 但是,我可以看到两者的好坏。 第一个版本不太容易出错,但第二个版本可以用来包含任意数量的可选项。 有没有一个“正确”的方式来指定R中的可选参数? 到目前为止,我已经解决了第一种方法,但是偶尔也会有点“哈克”的感觉。

在纯函数式语言中,是否有algorithm来获得反函数?

在像Haskell这样的纯函数语言中,是否有一种algorithm来获得函数的反函数,(编辑)它是否是双射的? 有没有一个特定的方式来编程你的function,所以呢?

Scala和Java代码的样本,Scala代码看起来更简单/行数更less?

我需要一些Scala和Java代码的示例代码(我也很好奇它们),它们表明Scala代码更简单,更简洁,然后用Java编写代码(当然,这两个示例都应该解决相同的问题)。 如果只有Scala样例,像“这是Scala中的抽象工厂,Java中它看起来更麻烦”,那么这也是可以接受的。 谢谢! 我喜欢大部分被接受和这个答案

apply_filters(…)实际上在WordPress中做了什么?

我试图了解WordPress的一些function,但是我无法理解apply_filters(…)实际上做了什么。 有人能够用几个例子为我解决这个问题吗?

function语言中的“模式匹配”是什么?

我正在阅读函数式编程,而且我注意到, 模式匹配在许多文章中被提及为函数式语言的核心特性之一。 有人可以解释一个Java / C ++ / JavaScript开发者是什么意思?

R中的lapply和do.call有什么区别?

最近我在学习R,两个函数lapply和do.call混淆了。 看起来,它们和Lisp中的map函数类似。 但是为什么有两个不同的名字呢? 为什么R不使用称为map的函数?