Chi*_*ron 2 lisp jvm design-patterns metaprogramming clojure
Lisp的优点之一是Macros.我一直在读Java,你一次又一次地编写设计模式.不是在Lisp/Clojure中.
在Lisp/Clojure中,您将在宏中声明模式,并且您只需编写实际代码.
好的,好看和花花公子,但看到相信.
你能不能给我(或参考我)一个代码示例 - 最好是Clojure-关于如何在宏中声明一个设计模式?
sku*_*uro 10
大多数现有的设计模式仅在面向对象的世界中起源并且有意义.一旦你进入函数式编程,特别是像Clojure这样的Lisp方言,你对设计模式的需求就越来越小.有一个关于设计模式和FP的intresting讨论这里.
另一方面,宏并不打算封装设计模式,而是使用更方便解决手头问题的结构来扩展语言.拿with-open宏:把它称为一个设计模式来调用close资源似乎是错误的.
模式也存在于FP世界中,但由于您不再拥有对象,因此它们主要关注算法.FP语言的"模式"的好例子是monad和zippers.
警告:理解这些概念可能需要时间,但绝对值得理解它们的每一点.
| 归档时间: |
|
| 查看次数: |
1238 次 |
| 最近记录: |