Clojure for Domain-specific Languages. (2013)
- Record Type:
- Book
- Title:
- Clojure for Domain-specific Languages. (2013)
- Main Title:
- Clojure for Domain-specific Languages.
- Other Names:
- D. Kelker, Ryan
- Contents:
- Cover; Copyright; Credits; About the Author; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: An Overview of Domain-Specific Languages with Clojure; Domain-specific languages (DSL); Limited scope; Syntax; Using a DSL; Popular DSLs; A contract between language and domain; The language of trust; Internal versus External DSLs; External DSLs; Internal DSL; Clojure libraries; Characteristics of a Clojure library; The current state of Clojure libraries; Database domains; HTML domain; Formative; Hiccup; Mustache; Clostache; ECMA/JavaScript domain; ClojureScript. Comparing ClojureScript and JavaScriptAudio domain; Music-as-data; Overtone; Image domains; Summary; Chapter 2: Design Concepts with Clojure; Every function is a little program; A pure function; Floor to roof development; Each function only does one thing; Patterns for success; DRY; KISS; YAGNI; Writing Clojure; Spacing and alignment; Syntax; Name conventions; Collection types; Summary; Chapter 3: Clojure Editing and Project Creation; The origin of Emacs and its usage; Installing and setting up Emacs24; Setting up Emacs; Creating and editing CLJ files in Emacs. Running a Clojure REPL inside EmacsThe nrepl.el Emacs extension; Leiningen and project management; Installing Leiningen and starting a project; Including Clojure or Java libraries in your project; Compiling your project to a Java JAR; Leiningen; Summary; Chapter 4: Features, Functions, and Macros; Namespaces; Java inside Clojure;Cover; Copyright; Credits; About the Author; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: An Overview of Domain-Specific Languages with Clojure; Domain-specific languages (DSL); Limited scope; Syntax; Using a DSL; Popular DSLs; A contract between language and domain; The language of trust; Internal versus External DSLs; External DSLs; Internal DSL; Clojure libraries; Characteristics of a Clojure library; The current state of Clojure libraries; Database domains; HTML domain; Formative; Hiccup; Mustache; Clostache; ECMA/JavaScript domain; ClojureScript. Comparing ClojureScript and JavaScriptAudio domain; Music-as-data; Overtone; Image domains; Summary; Chapter 2: Design Concepts with Clojure; Every function is a little program; A pure function; Floor to roof development; Each function only does one thing; Patterns for success; DRY; KISS; YAGNI; Writing Clojure; Spacing and alignment; Syntax; Name conventions; Collection types; Summary; Chapter 3: Clojure Editing and Project Creation; The origin of Emacs and its usage; Installing and setting up Emacs24; Setting up Emacs; Creating and editing CLJ files in Emacs. Running a Clojure REPL inside EmacsThe nrepl.el Emacs extension; Leiningen and project management; Installing Leiningen and starting a project; Including Clojure or Java libraries in your project; Compiling your project to a Java JAR; Leiningen; Summary; Chapter 4: Features, Functions, and Macros; Namespaces; Java inside Clojure; Immutability; Dynamic objects; Metadata; Lazy sequences; Destructuring; Functions and arity; Anonymous functions; Macros; Summary; Chapter 5: Collections and Sequencing; Collections; Collections by example; Vectors; Vectors by example; Lists; Lists by example; Maps. Maps by exampleSets; Sets by example; Sequences; Sequences by example; :let, :while, and :when; Summary; Chapter 6: Assignment and Concurrency; Variables; Transients; Atoms; Agents; Refs; Futures; Promises; Summary; Chapter 7: Flow Control, Error Handling, and Math; Flow control; Object comparison; Casting; Error handling; Arithmetic; Addition and subtraction; Multiplication; Division; Remainder and modulus; Increment and decrement; Greatest and least values; Equality; Summary; Chapter 8: Methods for Abstraction; Creating and constructing classes. Creating interfaces and implementing them with deftypeUsing records, protocols, and type extensions; Overriding methods with reify and proxy; Working with reify; Implementing interface methods with proxy; Custom symbol definitions with macros; Definitions using records; Making definitions using proxy; Making definitions using deftype; Multimethod polymorphism; Creating the Bottle and Customer classes; Testing the customer-drink methods; Relationships with hierarchies; Resolving parent relationship conflicts; Assertion testing with metadata; Input constraints with :pre. … (more)
- Publisher Details:
- Place of publication not identified : Packt Publishing
- Publication Date:
- 2013
- Extent:
- 1 online resource
- Subjects:
- 005.133
COMPUTERS -- Programming Languages -- LISP
Clojure (Computer program language)
Domain-specific programming languages
Clojure (Computer program language)
Domain-specific programming languages
COMPUTERS -- Programming Languages -- Java
Electronic books - Languages:
- English
- ISBNs:
- 1306212723
9781306212724
9781782166511
1782166513
9781782166504
1782166505 - Notes:
- Note: Print version record.
- Access Rights:
- Legal Deposit; Only available on premises controlled by the deposit library and to one user at any one time; The Legal Deposit Libraries (Non-Print Works) Regulations (UK).
- Access Usage:
- Restricted: Printing from this resource is governed by The Legal Deposit Libraries (Non-Print Works) Regulations (UK) and UK copyright law currently in force.
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library HMNTS - ELD.DS.86756
- Ingest File:
- 01_040.xml