Skip to content

squest/clojure-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clojure Tutorial

Clojure tutorial in Bahasa Indonesia (video version)

This tutorial assumes you have an introductory programming background (preferrably using Haskell). If you don't then try this one. Why Clojure? here.

Easy/Quick installation

  1. JDK 1.8
  2. [Download nightcode] (https://sekao.net/nightcode/)

Youtube Playlists (Table of content)

  1. Language Basic & REPL
    1.1 Installation & Clojure Introduction
    1.2 Basic Data Types & Operations
    1.3 Collections (List, Vector, Maps, Set)
    1.4 Symbols & Identifier
    1.5 Exercise 1: Expression
    1.6 Exercise 2: List Manipulation
    1.7 Exercise 3: Vector Manipulation
    1.8 Exercise 4: Set and Maps
    1.9 Exercise 5: Defining a Function
        1.9.1 Function can beget another
        1.9.2 Higher-order function take function arguments
  2. Source Code
    2.1 How to Make Clojure File
    2.2 4Clojure Introduction
    2.3 Conditional (if and cond)
    2.4 Conditional Continue & Collections
    2.5 Clojure Docs & Clojure Evaluation
    2.6 Clojure Evaluation Continue
    2.7 Recursion ex. Factorial
    2.8 Recursion Continue
  3. Clojure Expression
    3.1 Function
    3.2 Data Structure
    3.3 if Conditional
    3.4 Recursion
    3.5 True and False Conditional
    3.6 Brute-force Prime
    3.7 Efficient Prime Algorithm
    3.8 Pure Recursion & Looping
  4. Higher Order Functions
    4.1 Idiomatic clojure: destructuring with [[x & xs]] style. Start at 9.05: map, reduce
    4.2 Pattern: ->, ->>
    4.3 High order fn, input fn: map-indexed, keep, when, mapv, filter, filterv
    4.4 Global and local scope: let
    4.5 High order fn, input fn: remove, shuffle, sort, sort-by, apply, max, min, partition, partition-by, take-while, drop-while, group-by
    4.6 Map manipulation: zipmap, keys, vals, into, identity
    4.7 Map manipulation: assoc, dissoc, merge, merge-with, get-in, update-in, assoc-in
    4.8 High order fn, input fn: every?, some, mapcat, iterate
    4.9 High order fn, output fn: soal generator. comp, juxt, partial
  5. For, side-effects, and many others
    5.1 for
    5.2 for continue
    5.3 apply, reduce, eval
    5.4 Impure function, side effect!. Finally atom, reset!, @, dotimes, println, do, doseq
    5.5 ProjectEuler No. 1
    5.6 ProjectEuler No. 2, memoize
    5.7 IO Side effect!, slurp, read-string, edn???
    5.8 ProjectEuler No. 14, max-key, juxt

Special playlist(s)

  1. Using Paredit to boost productivity (VERY IMPORTANT!).

Practical Clojure & Apps development

The examples for this part is on a different repo somehow

  1. Basic practical Clojure

Important exercises

  1. 4Clojure
  2. Euler

Other learning resources

  1. Clojure cheat-sheet
  2. Clojure community tutorial
  3. Clojure for the brave and true

Tools

  1. JVM
  2. Leiningen
  3. Nightcode
  4. If you need an advanced Clojure IDE, try Emacs+cider+paredit or IntelliJ with Cursive for a much more productive workflow and better integration with Paredit + Java environment (IntelliJ)

About

Clojure tutorial in Bahasa Indonesia (video version)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published