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.
- JDK 1.8
- [Download nightcode] (https://sekao.net/nightcode/)
- 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 - Source Code
2.1 How to Make Clojure File
2.2 4Clojure Introduction
2.3 Conditional (ifandcond)
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 - Clojure Expression
3.1 Function
3.2 Data Structure
3.3ifConditional
3.4 Recursion
3.5 True and False Conditional
3.6 Brute-force Prime
3.7 Efficient Prime Algorithm
3.8 Pure Recursion & Looping - 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 - For, side-effects, and many others
5.1for
5.2forcontinue
5.3apply,reduce,eval
5.4 Impure function, side effect!. Finallyatom,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
- Using Paredit to boost productivity (VERY IMPORTANT!).
The examples for this part is on a different repo somehow