Groovy中的函数编程;除了咖喱方法:?

时间:2011-06-08 09:04:26

标签: groovy

昨晚我已经阅读了Groovy中的curry()方法,我感觉到函数式编程的感觉,使用了这个curry()方法。

作为Groovy语言的新手,Groovy中有没有像curry()方法那样提供函数式编程功能的方法?

如果用简单的例子解释这些方法,那将会很好。提前谢谢。

1 个答案:

答案 0 :(得分:4)

还有Closure composition

def plus2  = { it + 2 }
def times3 = { it * 3 }

def composed1 = plus2 << times3
assert composed1(3) == 11

您可以使用方法引用运算符&来获取对类方法的引用,然后可以将其用于currying或composition。

即:

def parseIntRef = Integer.&parseInt

def binaryParse = parseIntRef.rcurry( 2 )
def hexParse    = parseIntRef.rcurry( 16 )

assert binaryParse( '110' ) == 6
assert hexParse(    '0A'  ) == 10

闭包有3种curry形式;

  1. basic curry method开始从最左边的参数
  2. 开始调整Closure的参数
  3. 然后有the rcurry method,它开始讨论右边的参数
  4. 最后,there is ncurry从您指定的索引处开始。
  5. 如果您按照以下链接在文档中详细描述了所有这三种咖喱方法: - )