# Clojure

2 min read, 240 words clojurelanguage

Hosted Language on top of Java (JVM)

  • ' ignore evaluating the next thing
  • Runtime Polymorphism. same operaton for all type of collections
  • commas in clojure are just whitespace
  • Referential transparency
  • Functions are values in clojure
  • Multi-arity
  • let bind arguments to operators and then return a value
  • Loops are recursion in FP language, we dont do mutations
  • Higher order functions, map, reduce, filter
  • :: Fully qualified keyword
  • Destructuring - pull oout values from a DS

# Data structures

  • vector vs lists
    • both are implemented as linked lists in java
    • difference is one is stack, other one is queue
  • Sets
  • Maps and Hash Functions
Function operator namespace
get a value get, get-in
add a kv assoc, assoc-in
remove dissoc

# State Management

atom, ref, agent

# atom

  • reset! - replace the eitire ref
  • deref - get the value
  • swap! - state, function, return value

# What can clojure do

  • Scraping web pages
  • Shell scripts
  • Building websites
  • Playing around with OpenGL
  • Writing async webservers
  • HTML Templating
  • Running parallel tasks (fetching multiple URLs and process in parallel)
  • Playing around with real time audio
  • Simulations

Subscribe to our Newsletter

If you like my work and think it was helpful kindly support my work


Buy Me A Coffee