/Java_FP_example

Java Functional Programming Example (just for my share in Unipus Developer Team)

Primary LanguageJava

引语

今天下午5点分享我对函数式编程的理解。(以我在现实工作中的一个小例子做引子)


函数式编程 曾经在我怀疑自己的是否适合编程写代码的时候 让我重拾对编程的乐趣与信心 函数式编程 是我从Java转Python的部分原因 函数式编程 让我工作中有了多一些的掌控感 函数式编程 我还在路上 ... ...


希望有兴趣的童鞋到时去捧场。

由于上周二的6点大家基本都走个差不多了,没走的,基本也有事在忙,在加班。 所以,这次分享我把时间定在了下午5点。(如果没有异议,我就在5点分享)

谢谢大家


一个函数式的例子分享

先讲一个函数式的真实例子

真实线上代码

再讲一下这个例子中,函数的一些体现

再讲函数的本质是什么?

f: x -> y

再讲函数的,我的理解

像咱们公司,出版教材
    但要有编辑 才能出教材,
        有的教材,也不行
        (
            敦煌书多不多?
            教材多不多,
            上下几千的文化资料,
            前后几百年的积累,
            周围几个国家的文明之凝聚
        )
    要有学生,学生学习教材
    
    从上面来看我们公司的意义是什么?功能是什么?“函数”是什么?
    
        传播文明    在帮孔子做事情,在帮上帝做事情,在帮阿拉做事情(虽然现在...)
        
                    他们是人类共同体的文明表现,我们在帮助我们整个的人类命运共同体
                    
    
所以我们要有环境才能成就我们公司的事情


我们工作中也是,
    要有产品,
    要有研发,                    每一个环节都是下一个环境的输入与输出
    要有测试,

但放到大一点点的环境中,我们是一起做了多个产品(iWrite, iSpeak, iTest, U校园, U讲堂)

但大家一起在做一个共同的产品就是 Unipus,
然后大家一起为了**的外语教育提供线上教材。

而从教材这点上又是要有它的输入与输出
各种环节,各个步子,都可以理解成不同的 输入与输出。(当然也可以从不同维度去理解公司这个事物,比如财务、人力......)



我本人对函数式编程的最本质的理解:
    摒弃杂念 只有两端  如若需要,观其内在     
        f : x -> y

放回在我们编程代码中来:

    number (int, double, float)
    string
    tuple
    list
    map                            ==>  DATA  数据 
    class                
    struct
    function
    
    所有一切都是数据到数据的映射, 都是"函数"

再讲函数的对工作帮助的巨大帮助,它的"输入和输出"和"各类接口"的比较

返回头回顾这个例子

再讲一个真实的工作中的例子,然后帮助大家提高理解,对函数式语言的应用。(由于时间关系,没有讲这部分)

再讲一个关于Monad的一个例子(这个可能要放在下一节中去讲)[ 其实可能不会再讲这部分了:( ]


Just for Vim command
    :!javac -cp vavr-0.9.0.jar FunctionalProgramming.java && java -cp vavr-0.9.0.jar:. FunctionalProgramming