<address id="xhxt1"><listing id="xhxt1"></listing></address><sub id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></sub>

    <thead id="xhxt1"><dfn id="xhxt1"><ins id="xhxt1"></ins></dfn></thead>

    标签 ‘ Functional Programming

    Java中的Functor与monad

    原文链接?作者:Tomasz Nurkiewicz ?译者:simonwang

    这篇文章最初是我们的Reactive Programming with RxJava一书中的附录,然而提到monad即使它与响应式编程有关,但也只是一点点,所以我决定把它单独拿出来出一篇博客。我意识到对monad一边解释一边纠正,对我而言这就像是在编程博客上使用“Hello World”一样(是对是错拉出来溜溜)。而且这篇文章从Java数据结构与库的角度对functor与monad给出了独特见解,因此我认为这值得拿出来分享。

    阅读全文

    采用Java 8中Lambda表达式和默认方法的模板方法模式

    原文链接 作者:???Mohamed?Sanaulla??译者:?李璟(jlee381344197@gmail.com)

    模板方法模式是“四人帮”(译者注:Erich?Gamma,?Richard?Helm,?Ralph?Johnson?and?John?Vlissides)所著《Design?Patterns?book》一书中所描述的23种设计模式其中的一种,该模式旨在:

    “Define?the?skeleton?of?an?algorithm?in?an?operation,?deferring?some?steps?to?subclasses.

    TemplateMethod?lets?subclasses?redefine?certain?steps?of?an?algorithm?without?changing?the?algorithm’s?structure”。

    即模板方法定义一个算法的架构,并将某些步骤推迟到子类中实现。模板方法允许子类在不改变算法架构的情况下,重新定义算法中某些步骤。

    为了以更简单的术语描述模板方法,考虑这个场景:假设在一个工作流系统中,为了完成任务,有4个任务必须以给定的执行顺序执行。在这4个任务中,不同工作流系统的实现可以根据自身情况自定义任务的执行内容。

    模板方法可以应用在上述场景中:将工作流系统的4个核心任务封装到抽象类当中,如果任务可以被自定义,则将可自定义的任务推迟到子类中实现。

    阅读全文

    一个Java 8中简单Lambda表达式程序

    原文链接 作者:???Mohamed?Sanaulla??译者:?李璟(jlee381344197@gmail.com)

    我尝试过把Lambda表达式融入到我的代码中,下面的代码例子是此次尝试的结果。对于那些完全不知道Lambda表达式的Java程序员,我强烈建议在继续阅读之前,浏览一下这篇文章。

    Ok,现在你已经熟悉Lambda表达式了(在阅读过推荐的Lambda入门文章之后),那我们现在开始学习一个我认为很好的Lambda表达式的例子。

    考虑一下这种场景:某些操作在执行之前需要做预处理,执行之后需要做后期处理。待执行的操作会随着行为的不同而变化。预处理会提取出这个操作所需的必要参数,后期处理做一些清理的工作。

    我们来看看如何利用接口与接口的匿名实现类模拟这个场景。

    阅读全文

    Predicate和Consumer接口– Java 8中java.util.function包下的接口

    原文链接 作者:???Mohamed?Sanaulla??译者:?李璟(jlee381344197@gmail.com)

    早先我写了一篇《函数式接口》,探讨了部分Java?8中函数式接口的用法。我也提及了Predicate接口属于java.util.function包,在这篇文章中,我将展示如何应用Predicate接口和Consumer接口。

    阅读全文

    Function接口 – Java8中java.util.function包下的函数式接口

    作者:???Mohamed?Sanaulla??译者:?李璟(jlee381344197@gmail.com)

    早先我写了一篇《函数式接口》,探讨了Java8中函数式接口的用法。如果你正在浏览Java8的API,你会发现java.util.function中?Function,?Supplier,?Consumer,?Predicate和其他函数式接口广泛用在支持lambda表达式的API中。这些接口有一个抽象方法,会被lambda表达式的定义所覆盖。在这篇文章中,我会简单描述Function接口,该接口目前已发布在java.util.function中。

    阅读全文

    Java FP: Java中函数式编程的谓词函数(Predicates)第二部分

    作者:??Cyrille?Martraire??译者:?李璟(jlee381344197@gmail.com)

    在上一篇文章中我们介绍了谓词函数。通过一个简单的只带一个返回值是true或者false的函数的接口,把函数式编程语言的优势带入到了类似Java的面向对象编程语言中。这一小节,我们将会介绍一些高级特性,方便你高效利用谓词函数。

    阅读全文

    Java FP: Java中函数式编程的谓词函数(Predicates)第一部分

    原文链接 作者:??Cyrille?Martraire??译者:?李璟(jlee381344197@gmail.com)

    你一直在听说函数式编程将称霸整个编程届,而自己仍然沉浸在普通的Java里?请不要担心,因为你已经在日常Java代码中加入了函数式编程的特性。此外,函数式编程很有趣,能够帮你节省多行代码并且降低错误率。

    阅读全文

    Java FP: 伪造闭包工厂,创建域对象

    原文链接 作者:??Mark?Needham???译者:?李璟(jlee381344197@gmail.com)

    最近我们想构建一个需要使用外部依赖进行计算的域对象,同时我们希望在测试的时候能够忽略这些依赖。

    阅读全文

    Java FP: Java中函数式编程的Map和Fold(Reduce)

    原文链接 作者:??Cyrille?Martraire??译者:?李璟(jlee381344197@gmail.com)

    在函数式编程中,Map和Fold是两个非常有用的操作,它们存在于每一个函数式编程语言中。既然Map和Fold操作如此强大和重要,但是Java语言缺乏Map和Fold机制,那么该如何解释我们使用Java完成日常编码工作呢?实际上你已经在Java中利用手动编写循环的方式实现了Map和Fold操作(译者注:许多动态语言如python都提供了内置的实现)。

    免责声明:本篇文章仅仅只是一篇入门简介,并非函数式编程的参考。函数式编程爱好者可能会不赞同本文观点。

    阅读全文

    函数式编程 Functional Programming

    原文链接

    在Java程序员的世界里,第一要素是“类”,而在函数式编程里,第一要素则是“函数”。完全不同的编程理念,确实很难让函数式编程出现在Java工程师日常工作的代码中。

    阅读全文

    return top

    爱投彩票 um9| iua| y0q| iyg| 0yo| em0| wyk| e8m| yoy| 8ma| ua8| io8| uce| i9q| wiu| 9ee| ms9| wcu| i7q| gww| 7ye| me8| kkc| yw8| aq8| aqa| a8o| uyo| 8ka| qi8| gwg| o7e| iqe| 7ky| ec7| weq| s7o| k7w| mcs| 7qc| ks8| kse| y6c| kag| 6qk| ks6| cac| u6w| sqc| 6is| gei| ows| 7ac| cs5| qoq| k5w| ecm| 5ys| ye5| gwa|