zoukankan      html  css  js  c++  java
  • 优雅的函数式编程--Clojure概述

    欢迎转载,转载请注明出处,徽沪一郎。

    楔子

    由于阅读storm源码的原因,头一次接触到Clojure。没有花特别的时间来研究clojure语法,只是在一些特殊的用法时,才查了一下clojure官网的文档,基本上能够很快的理解其意思。

    在理解了storm中的基本处理流程之后,花了一段时间好好的看了几本clojure编程的书籍,书籍名称及评价分别如下。

    1. clojure programming 介绍了clojure语言的基本特点,同时对于clojure的工程实践做了比较详细的介绍
    2. programming clojure 重点全部在于介绍clojure语言的特点,对于clojure在实际中的应用介绍比较简略,个人以为在对clojure语言本身的介绍方面,这本要优于上面提到的clojure programming一书
    3. the joy of clojure  该书籍从一个比较高的层面来思考clojure为什么要设计成这样,有点类似于c++中的c++沉思录一类的

    语言概述

    clojure是庞大的lisp编程语言家族中的一个新成员,所以其有lisp语言的鲜明特征,一切皆函数。

    clojure语言的核心主要涉及如下几个部分。

    1. 函数式编程
      1. 数据类型
      2. 条件判断语句,循环控制语句
      3. 集合 如set,list,vector, map
      4. sequence 这个是非常特殊的一部分,从传统的c或java转换到clojure编程,常常容易在这卡住
      5. 函数
        1. 变量声明
        2. 集合解构
      6. (特色所在)
    2. 并发编程 (concurrent programming)
      1. STM
    3. 面向对象 clojure吸收并借鉴了object-oriented的编程语言的一些优点,
      1. 函数重载 defmulti
      2. 接口 defprotocol 解决is-a的问题

    练习

    clojure的语法非常简洁优雅,花不了半天的时间就能大体知道个大概,但要想彻底的掌握还是需要大量的练习才行。

    哪些题目值得花时间,哪些不值一提,这个已经有人想到了,并搞了个很好的网站。http://www.4clojure.com 到该网站注册一个用户名,总共150道题,难度由浅入深,是不可多得的学习资源。

    clojure中的语法糖不是特别多,但想一个不落的记处还是有点累,为此完全可以将clojure cheatsheet放置在办公桌最显眼的地方,不多就两张A4张。http://clojure.org/cheatsheet

  • 相关阅读:
    iot 表索引dump《2》
    heap表和iot表排序规则不同
    Cannot complete the install because one or more required items could not be found.
    iot表输出按主键列排序,heap表不是
    iot 表主键存放所有数据,且按数据插入顺序排序
    iot表和heap表排序规则不同
    org.eclipse.graphiti.ui.editor.DiagramEditorInput.
    Oracle 排序规则
    perl 异步超时 打印错误
    14.6.3 Grouping DML Operations with Transactions 组DML操作
  • 原文地址:https://www.cnblogs.com/hseagle/p/3657449.html
Copyright © 2011-2022 走看看