Clojure Programming Language
Jump to navigation
Jump to search
A Clojure Programming Language is a Functional Programming Language that is based on Lisp programming language.
- AKA: Clojure.
- …
- Example(s):
- defining a variable:
user=> (def a 42)
- defining a vector:
user=> (get ["a" 13.7 :foo] 1)
- defining a variable:
- Counter-Example(s):
- See: Eclipse Public License, Gradual Typing, Multi-Paradigm Programming Language, Agent-Oriented Programming, Concurrent Programming, Functional Programming, Logic Programming, Macro (Computer Science), Pipeline (Software), Lisp (Programming Language), Rich Hickey, Dynamic Typing, Strong Typing.
References
2020a
- (Wikipedia, 2020) ⇒ https://en.wikipedia.org/wiki/Clojure Retrieved:2020-9-20.
- Clojure (like closure)[1][2] is a modern, dynamic, and functional dialect of the Lisp programming language on the Java platform.[3] [4] Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system.[5] The current development process is community-driven,[6] overseen by Rich Hickey as its benevolent dictator for life (BDFL). Clojure advocates immutability and immutable data structures and encourages programmers to be explicit about managing identity and its states.[7] This focus on programming with immutable values and explicit progression-of-time constructs is intended to facilitate developing more robust, especially concurrent, programs that are simple and fast.[8] [9] [1] While its type system is entirely dynamic, recent efforts have also sought the implementation of gradual typing.
Commercial support for Clojure is provided by Cognitect. Clojure conferences are organized every year across the globe, the most famous of them being Clojure/conj.
- Clojure (like closure)[1][2] is a modern, dynamic, and functional dialect of the Lisp programming language on the Java platform.[3] [4] Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system.[5] The current development process is community-driven,[6] overseen by Rich Hickey as its benevolent dictator for life (BDFL). Clojure advocates immutability and immutable data structures and encourages programmers to be explicit about managing identity and its states.[7] This focus on programming with immutable values and explicit progression-of-time constructs is intended to facilitate developing more robust, especially concurrent, programs that are simple and fast.[8] [9] [1] While its type system is entirely dynamic, recent efforts have also sought the implementation of gradual typing.
- ↑ 1.0 1.1 Edwards, Kathryn (2009-08-10). "The A-Z of Programming Languages: Clojure". Computerworld.com.au.
- ↑ Hickey, Rich (2009-01-05). "meaning and pronunciation of Clojure". Google.com.
- ↑ Krill, Paul (2012-03-22). "Clojure inventor Hickey now aims for Android". InfoWorld.com.
- ↑ "Clojure". Clojure.org. Retrieved 2019-07-07.
- ↑ "Differences with other Lisps". Clojure.org. Retrieved 2019-07-07.
- ↑ "Development". Clojure.org. Retrieved 2019-07-07.
- ↑ "Values and Change: Clojure's approach to Identity and State". Clojure.org. Retrieved 2019-07-07.
- ↑ Hickey, Rich. "Rationale". Clojure.org. Retrieved 2019-07-07
- ↑ Torre, Charles (2009-10-06). "Expert to Expert: Rich Hickey and Brian Beckman – Inside Clojure". MSDN.com.
2020b
- (Hickey, 2020) ⇒ https://clojure.org Retrieved:2020-9-20.
- QUOTE: Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language, yet remains completely dynamic – every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. Clojure is predominantly a functional programming language, and features a rich set of immutable, persistent data structures. When mutable state is needed, Clojure offers a software transactional memory system and reactive Agent system that ensure clean, correct, multithreaded designs.
- QUOTE: Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is a compiled language, yet remains completely dynamic – every feature supported by Clojure is supported at runtime. Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.