• 怎样学习Scala泛函编程


            确切来说应该是我打算怎么去学习Scala泛函编程。在网上找不到系统化完整的Scala泛函编程学习资料,只好把能找到的一些书籍、博客、演讲稿、论坛问答、技术说明等组织一下,希望能达到学习目的。关于Scala语言的教材在国内网上还是比较容易找到的;可以到Scala语言官方网站国内Scala社区网站这些地方去看看了解一下;深一点的参考一下在路上,里面包括了一些泛函编程的概念性内容。

       

    学习编程语言除了语法语意之外还必须透彻了解编程语言的数据结构(data structure);数据结构在实际项目中的角色,如何应用、如何添加定制;试想想任何一个实际的应用程序没有Array、List、Buffer、String这些数据结构会怎样。泛函编程有一套自己的数据结构。与OOP数据结构不同的是FP数据结构是以数学理论为基础的,必须遵循特定的数学定律。由于Scala是OOP和FP的混合,学习Scala也可以掌握我们所熟悉的那些java data structure。但如果直接使用这些java data structure去做Scala项目开发,那不就等于又回到原路了吗,还费劲去学习Scala干嘛,花点时间把java搞的更精点不是更好吗。曾提到OOP可能无法有效地进行现代云应用系统开发,那么重点还是要学习掌握Scala的泛函编程部分。泛函编程有一套独特的数据结构管理和应用方法。Scalaz是一套完整的泛函数据结构库,是一套开源项目,在许多大型软件中都有使用。那么我的第一个目标就是在以后的编程能充分使用Scalaz,合理调用里面的数据结构(data structure)。不过Scalaz连学习资料甚至说明文档都没有,看来还必须从基本的泛函编程概念开始学习。

        Scala泛函编程学习过程大体分三个部分:

        1)学习泛函编程模式    

        2)了解掌握Scalaz   

        3)用Scala泛函编程实践开发数据平台项目中的各项子系统。

        

        在网上刨过了一大堆书籍和资料后,发现Paul Chiusano和Runar Bjarnason所著“Functional Programming In Scala”写的不错。内容组织的也比较合理;从FP概念到FP数据结构到泛函编程,并且是用Scala做的示范说明。

    下面的Scala泛函编程学习部分就以这本书的结构为基础,再把其它零星分散的资料重新组织一下作为进一步的示范说明。 

  • 相关阅读:
    Docker 系列(四):Docker 容器数据卷简单使用
    【QML 动态对象】使用JS中的语句动态创建和销毁组件
    【QML 动态对象】Loader动态加载组件
    vue-cli2.0全局使用sass变量
    两边+居中 布局
    跳转子路由后左侧菜单跳转为空白页,路由地址出错
    el-tree可搜索单选
    el-tree固定高度加滚动条
    前端 权限控制 方式
    综合分析类
  • 原文地址:https://www.cnblogs.com/tiger-xc/p/4323321.html
Copyright © 2020-2023  润新知