内容简介
Clojure is a modern, dynamic language that you can use to develop robust, multithreaded programs. Clojure Polymorphism is a comprehensive guide that shows you how to use Clojure’s features to your advantage.The book begins by describing examples that show how to define and implement abstractions with plain functions and multimethods. Then you'll analyze these examples and separate the good and bad aspects of their design principles. You'll also learn how to perform data transformation
AI简介
这是一本专注于教授如何在特定情境下选择和使用Clojure特性的书籍。这本书首先描述了定义和实现抽象的例子,然后分析了这些例子,并分离了好的设计原则和不好的设计原则。接着,书中介绍了服务抽象的概念,并分析了服务抽象的优缺点。此外,书中还讨论了代码弹性、分离关注点以及动态性等概念,并分析了它们在编程中的应用。
在讨论服务抽象时,书中详细介绍了服务抽象的组成部分以及实现方式,并分析了每种实现方式的优缺点。书中还介绍了 “Plain function” approach和 “Multimethod” approach的优缺点,并分析了它们在处理函数调度和扩展抽象方面的灵活性。此外,书中还讨论了 “协议+客户端+多方法”方法的使用,并分析了它在构建服务对象时的优势。
在讨论性能与灵活性的权衡时,书中详细介绍了记录(Record) 和类型(Type) 在性能和灵活性方面的优缺点,并分析了它们在JVM上的应用。此外,书中还介绍了JVM上协议扩展策略,并总结了在JVM上扩展协议时的两种策略。