• 大部分函数式编程语言, 都很享受 C-c C-k大法好 的 开发体验. 😍 而且Lisp语言还很享受 C-x C-e大法好 的 开发 体验. 😜

  • Lisp大部分人, 都集中在帝都, 深圳目前我知道的只有熊聊用Clojure做后端API. 广州的汇丰用Clojure做后端, 混合Java编程.😁 😁 😁 本人也在帝都做Clojure开发.

  • 应用了元编程,开心哦 at 2017年09月13日

    好了,你可以去学 Clojure 了

  • @luikore Scheme 和 Racket, 是Lisp界的标准, 这一点不容置疑, 学透SICP可以完全升级一个程序员的 内功.

    但Scheme的问题是停留在教育层面的, 虽然Racket尝试生产方面, 毕竟还没成功.

    Scheme和Clojure是很像的, 但是Clojure的生产效率是非常高的, 它和Java之间的互操作, 都是简单得让你惊奇. 而且Ruby底子好的人, 看Java代码是不难的.

    Clojure后端开发 非常成熟, ClojureScript前端开发体验也是一流的, 而且Clojure在大数据和数据分析领域也是非常成熟的, 如Storm, Cascalog, 包括Clojure调用Spark也是非常容易的.

    Common Lisp已经是混合多范式了, 虽然根植于Lisp, 我不想用它的原因是, CLOS 不应该继承到 它的核心里面, 使得 Clisp过度复杂.

  • @Peter 如果你们学习Lambda演算, 连 它的 鼻祖都 不知道, 那有何意义呢?

    Ruby社区很多高手, 比如 @luikore 等, 都是修炼过SICP的, 如果你不知道他们为什么这么厉害, 只能说你们在社区白混了.

    今年的RubyConf China 2017, 都已经有三个主题是 关于函数式的了, 难道你们还要停留在学习的舒适区吗?

  • 干掉了SICP,十个Ruby元编程都不在话下 😍 😍 😍

  • 要认识的Ruby元编程的真正价值, 就要从元编程的鼻祖Lisp开始, 真正做到了 代码就是数据, 数据就是代码, 真正的代码和数据的完美统一.

    真正掌握元编程的人, 任何语法都限制不了一个程序员.

    (macroexpand-1 '(-> 100 (+ 1) (+ 2) (+ 3)))    ;;=> (+ (+ (+ 100 1) 2) 3) 
    
    (defmacro unless [expr form]
      (list `if expr nil form))
    
    (macroexpand-1 '(unless false "Hi, Clojure!"))
    ;; => (if false nil "Hi, Clojure!") ;; 代码展开的样子
    
    
  • Clojure 除了具备了 Lisp开发的 最佳体验 (Emacs + REPL) 开发, 没有比这个开发体验更好的, 我用过如此多的语言里面.

    而且Clojure的资源几乎是无限的, Java资源轻易封装使用, 如我自己封装的一些 : 讯飞Clojure的SDK, Hanlping, 阿里云aliyun-oss-clj 等等.

    而且ClojureScript函数式来写复杂前端都轻易搞定: https://github.com/chanshunli/clojurescript-study, https://github.com/clojurescript-scope-games/flappy-bird-demo 等等. 也是Lisp的开发体验, 甚至不需要离开编辑器就完成了复杂单页面或者游戏.

    还有我用Clojure调用Spark数据分析, 机器学习等: 如 https://github.com/clojure-spark/sparkling-streaming-ml

    我还用Clojure来写安卓APP收集传感器数据, 做流式数据在线学习 等,

    Java能做的, Clojure一样能做, 而且速度快的 惊人, 曾经我认为Ruby是最好的语言, 但是我错了, 能够开发Clojure是我命运的眷顾, 让我知道 什么才是程序员的幸福 😍 😍 😍 , Clojure给我的感觉是, 优美的极点 + 无穷的强大几乎没有它干不了的事情.

  • 吃透了SICP, 一般的程序员的功力就干不过你了. 所以它不是那么容易吃透的呀.

    -> & ->>的区别是 :

    (macroexpand-1 '(-> 100 (+ 1) (+ 2) (+ 3)))    ;;=> (+ (+ (+ 100 1) 2) 3)
    
    (macroexpand-1 '(->> 100 (+ 1) (+ 2) (+ 3)))   ;;=> (+ 3 (+ 2 (+ 1 100)))
    
    
  • 这是函数式圣经级别读物, 我第一次看到这部著作的时候,也直接丢掉了.

    Jim Weirich的演讲, 让我深度思考了函数式, 使得我重新读完这部书的前面四章, 被SICP 震惊了, 发现我错了. 才知道邱奇是多么的伟大, Lisp 是多么伟大.