PageRenderTime 29ms CodeModel.GetById 29ms RepoModel.GetById 0ms app.codeStats 0ms

/articles/content.md

https://gitlab.com/klauer/clojuredocs-guides
Markdown | 380 lines | 222 code | 158 blank | 0 comment | 0 complexity | 8c5c8e1a7606876def9a594a625ca201 MD5 | raw file
  1. ---
  2. title: "Table of Contents"
  3. layout: article
  4. ---
  5. [The content](https://github.com/clojuredocs/guides) is a categorized and
  6. manifold collection of documentation guides for the Clojure programming language and
  7. its ecosystem.
  8. We recognize that different Clojure users have different level of expertise
  9. and separates content into several groups:
  10. * [Essentials](#essentials)
  11. * [Core language guides](#language-guides)
  12. * [The Ecosystem](#the-clojure-ecosystem) (tools, libraries, community, books) guides
  13. * [Tutorials & Cookbooks](#tutorials-and-cookbooks)
  14. ## Essentials
  15. ### [Getting Started](/articles/tutorials/getting_started.html)
  16. If you're new to Clojure, this is a good place to start.
  17. ### [Introduction](/articles/tutorials/introduction.html)
  18. A swift introduction to the Clojure language, covering most of the
  19. basics.
  20. ### [Emacs for Clojure Development](/articles/tutorials/emacs.html)
  21. A brief introduction to Emacs, Clojure mode, SLIME and Clojure development workflow with Emacs.
  22. ### [Vim for Clojure Development](/articles/tutorials/vim_fireplace.html)
  23. A brief introduction to Clojure development in Vim with fireplace.vim.
  24. ### [Eclipse for Clojure Development](/articles/tutorials/eclipse.html)
  25. A brief introduction to Counterclockwise, a Clojure plugin for Eclipse.
  26. ## Language Guides
  27. ### [Functions](/articles/language/functions.html)
  28. Functions are at the heart of Clojure.
  29. This guide covers:
  30. * How to define functions
  31. * How to invoke functions
  32. * Multi-arity functions
  33. * Variadic functions
  34. * Higher order functions
  35. * Other topics related to functions
  36. ### [clojure.core Overview](/articles/language/core_overview.html) (incomplete)
  37. `clojure.core` is the core Clojure library.
  38. This guide covers:
  39. * Key functions of `clojure.core`
  40. * Key macros of `clojure.core`
  41. * Key vars of `clojure.core`
  42. ### [Interoperability with Java](/articles/language/interop.html)
  43. The Clojure language implementation is symbiotic with its host
  44. platform (the JVM), providing direct interoperability.
  45. This guide covers:
  46. * How to instantiate Java classes
  47. * How to invoke Java methods
  48. * How to extend Java classes with proxy
  49. * How to implement Java interfaces with reify
  50. * How to generate Java classes with gen-class
  51. * Other topics related to interop
  52. ### [Namespaces](/articles/language/namespaces.html)
  53. Namespaces organize Clojure functions.
  54. This guide covers:
  55. * An overview of Clojure namespaces
  56. * How to define a namespace
  57. * How to use functions in other namespaces
  58. * `require`, `refer` and `use`
  59. * How to Look up and invoke a function by name
  60. * Common compilation exceptions and their causes
  61. * How code compilation works in Clojure
  62. ### [Polymorphism: Protocols and Multimethods](/articles/language/polymorphism.html)
  63. This guide covers:
  64. * What are polymorphic functions
  65. * Type-based polymoprhism with protocols
  66. * Ad-hoc polymorphism with multimethods
  67. * How to create your own data types that behave like core Clojure data types
  68. ### [Collections and Sequences](/articles/language/collections_and_sequences.html)
  69. This guide covers:
  70. * Collections in Clojure
  71. * Sequences in Clojure
  72. * Core collection types
  73. * Key operations on collections and sequences
  74. * Other topics related to collections and sequences
  75. ### [Concurrency & Parallelism](/articles/language/concurrency_and_parallelism.html)
  76. This guide covers:
  77. * An overview of concurrency hazards
  78. * Clojure's approach to state and identity
  79. * Immutable data structures
  80. * Reference types (atoms, vars, agents, refs)
  81. * Using Clojure functions with `java.util.concurrent` abstractions
  82. * The Reducers framework (Clojure 1.5+)
  83. * Other topics related to concurrency and runtime parallelism
  84. ### [Macros and Metaprogramming](/articles/language/macros.html)
  85. This guide covers:
  86. * Clojure macros
  87. * Clojure compilation process
  88. * Other topics related to metaprogramming
  89. ### [Laziness and Lazy Sequences](/articles/language/laziness.html) (incomplete)
  90. This guide covers:
  91. * What are lazy sequences
  92. * How to create functions that produce lazy sequences
  93. * How to force evaluation
  94. * Pitfalls with lazy sequences
  95. ### [Glossary](/articles/language/glossary.html)
  96. This guide includes definitons of various Clojure-related terminology.
  97. ## The Clojure Ecosystem
  98. ### [Books](/articles/ecosystem/books.html)
  99. This guide covers:
  100. * Books on Clojure
  101. * Books on ClojureScript
  102. ### [Getting Started with Leiningen](https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md)
  103. This guide covers:
  104. * What is Leiningen and what it can do for you
  105. * How to create a project with Leiningen
  106. * How to manage project dependencies
  107. * Accessing the REPL
  108. * How to run tests for your project
  109. * How to run the app
  110. * How to compile your code and dependencies into a single JAR for deployment ("überjar")
  111. * How to share (publish) a library
  112. ### [Maven for Clojure Development](/articles/ecosystem/maven.html)
  113. This guide covers:
  114. * An overview of Apache Maven
  115. * Maven Clojure plugin
  116. ### [Clojure Library Directory](/articles/ecosystem/libraries_directory.html)
  117. A curated and highly opinionated categorized directory of available Clojure libraries and tools.
  118. ### [Clojure Community](/articles/ecosystem/community.html)
  119. This guide covers:
  120. * Planet Clojure, mailing lists, IRC channel
  121. * Clojure conferences
  122. * Local Clojure user groups
  123. * Other Clojure community resources
  124. ### [core.typed](/articles/ecosystem/core_typed/home.html)
  125. * What is Clojure core.typed
  126. * core.typed documentation, tutorials, and guides.
  127. ### [java.jdbc](/articles/ecosystem/java_jdbc/home.html)
  128. This guide covers:
  129. * An overview of Clojure's JDBC wrapper
  130. * Setting up a data source
  131. * Manipulating data with SQL
  132. * Manipulating tables with DDL
  133. * Mapping between SQL entities and Clojure identifiers
  134. * How to use connection pooling
  135. * How to use the basic SQL DSL in java.jdbc.sql
  136. * Where to go beyond java.jdbc
  137. ### [Library Development and Distribution](/articles/ecosystem/libraries_authoring.html)
  138. This guide covers:
  139. * Basic setup for library development
  140. * How to publish a library to Clojars
  141. ### [Leiningen Profiles](https://github.com/technomancy/leiningen/blob/master/doc/PROFILES.md)
  142. This guide covers:
  143. * What are Leiningen profiles
  144. * How to use them
  145. ### [Distributing Libraries with Leiningen](https://github.com/technomancy/leiningen/blob/master/doc/DEPLOY.md)
  146. This guide covers:
  147. * How Clojure libraries are distributed
  148. * How to publish Clojure libraries to clojars.org
  149. * How to publish Clojure libraries to Maven Central
  150. * How to publish Clojure libraries to your own Maven repository
  151. ### [Writing Leiningen Plugins](https://github.com/technomancy/leiningen/blob/master/doc/PLUGINS.md)
  152. This guide covers:
  153. * What Leiningen plugins can do
  154. * How to install Leiningen plugins
  155. * How to develop plugins
  156. * How to distribute plugins
  157. ### [Documentation Tools](/articles/ecosystem/generating_documentation.html)
  158. * Tools for generating documentation from docstrings and other project
  159. metadata.
  160. ### [Data Processing (Overview)](/articles/ecosystem/data_processing.html) (TBD)
  161. This guide covers:
  162. * An overview of why Clojure is an excellent choice for data processing
  163. * Popular tools and libraries in the area
  164. ### [Clojure User Groups](/articles/ecosystem/user_groups.html)
  165. This guide covers:
  166. * Clojure User Groups (CLJUGs) around the world
  167. ## Tutorials and Cookbooks
  168. ### [Basic Web Development](/articles/tutorials/basic_web_development.html)
  169. A brief tutorial/walkthrough of building a small web app using Ring,
  170. Compojure, Hiccup, and SQLite.
  171. ### [Parsing XML in Clojure](/articles/tutorials/parsing_xml_with_zippers.html)
  172. This guide covers:
  173. * How to parse XML in Clojure with zippers (`clojure.data.zip`)
  174. ### [Growing a DSL with Clojure](/articles/tutorials/growing_a_dsl_with_clojure.html)
  175. How to create a simple DSL with Clojure.
  176. Includes introductions to:
  177. * Multimethods
  178. * Hierarchies
  179. * Metaprogramming and the "Code as data" philosophy
  180. ### [Strings](/articles/cookbooks/strings.html)
  181. This cookbook covers:
  182. * How to work with strings
  183. * How to work with characters
  184. * How to work with regular expressions
  185. * How to work with context-free grammars
  186. * How to format text
  187. ### [Mathematics](/articles/cookbooks/math.html)
  188. Includes coverage of facilities for doing math with Clojure.
  189. ### [Data Structures](/articles/cookbooks/data_structures.html) (TBD)
  190. This cookbook covers:
  191. * Vectors
  192. * Maps
  193. * Lists
  194. * Sets
  195. * Generic operations on sequences
  196. ### [Files and Directories](/articles/cookbooks/files_and_directories.html)
  197. This cookbook covers:
  198. * Reading and writing text and binary files
  199. * Listing directory contents
  200. * Creating files and directories
  201. * Moving files and directories
  202. * Removing files and directories
  203. * Accessing file metadata
  204. * Other operations on files and directories
  205. ### [Date and Time](/articles/cookbooks/date_and_time.html) (TBD)
  206. This guide covers:
  207. * Working with JDK dates
  208. * Working with Joda Time and `clj-time`
  209. * Instant literals (Clojure 1.4+)
  210. ### [Middleware](/articles/cookbooks/middleware.html) (incomplete)
  211. This guide covers:
  212. * What middleware is and how it works
  213. * Creating middleware for a client function
  214. * Combining middleware to create a new client
  215. ## License
  216. All the content is distributed under the
  217. [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/) license
  218. and are copyright their respective primary author(s).
  219. ## Tell Us What You Think!
  220. Please take a moment to tell us what you think about this guide [on Twitter](https://twitter.com/clojuredocs) or the [Clojure mailing list](https://groups.google.com/group/clojure).
  221. Let us know what was unclear or what has not been covered. Maybe you do not like the guide style or grammar or discover spelling mistakes.
  222. Reader feedback is key to making the documentation better.