WEB开发网
开发学院软件开发Java Java 语言中的函数编程 阅读

Java 语言中的函数编程

 2009-11-12 00:00:00 来源:WEB开发网   
核心提示: BinaryFunction 类似于前面看到的 BinaryPredicate ,是一个由 Apache Functor 提供的一般化仿函数(functor)接口,Java 语言中的函数编程(8), BinaryFunction 接口有两个参数并返回一个 Object 值,类似地,可以用一个 D

BinaryFunction 类似于前面看到的 BinaryPredicate ,是一个由 Apache Functor 提供的一般化仿函数(functor)接口。 BinaryFunction 接口有两个参数并返回一个 Object 值。类似地, UnaryFunction 是一个取一个 Object 参数并返回一个 Object 值的仿函数接口。

RightBoundFunction 是一个由 Apache 库提供的适配器类,它通过使用常量右参数(right-side argument)将 BinaryFunction 适配给 UnaryFunction 接口。即,在一个参数中收到相应的消息( evaluate ) 时,它在内部用两个参数发送一个 evaluate 消息给正在适配的 BinaryFunction ── 左边的是发送给它的参数,右边的是它知道的常量。您一定会猜到,名字 RightBoundFunction 来自于常量值是作为第二个 (右边) 参数传递这一事实。(是的,Apache 库还提供了一个 LeftBoundFunction ,其中常量是作为第一个参数或者左参数传递的。)

用于双精度相乘的特化的 BinaryFunction

清单 3 显示了名为 Multiply 的特化的 BinaryFunction ,它取两个 Double 作为输入并返回一个新的、由前两个双精度值相乘而得到 Double 。

在 calcDiscountedRate 中实例化了一个新的 RightBoundFunction ,它通过用 (1 - discountRate) 作为其常量第二参数,将二元 Multiply 函数适配为一元接口。

结果,可以用一个 Double 参数向 calcDiscountRate 发送一个名为 evaluate 的消息。在内部,输入参数 Double 乘以 calcDiscountRate 对象本身包含的常量值。

与此类似,在 calcTaxRate 中实例化了一个新的 RightBoundFunction ,它通过用 (1 + taxRate) 作为其第二个常量参数将二元 Multiply 函数适配为一元接口。结果,可以用一个 Double 参数向 calcTaxRate 发送一个名为 evaluate 的消息。在内部,输入参数 Double 乘以 calcTaxRate 对象本身包含的常量值。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Java 函数

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接