Last active
October 9, 2015 09:38
-
-
Save fgui/9717f17bd891c18884c0 to your computer and use it in GitHub Desktop.
introducción a clojure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * introducción a clojure / clojurescript | |
| * ¿clojure? | |
| ** dialecto de LISP | |
| - dynamic | |
| - funcional | |
| - el código son datos (homoiconic) | |
| - syntactic abstractions | |
| + functions | |
| + macros (no reader macros) | |
| - repl (-> read eval print loop) | |
| - sequence | |
| ** specifico clojure/cljs | |
| - con estructuras de datos immutables con peristencia | |
| - estado mutable / concurréncia | |
| + acceso atómico (atom) | |
| + sistema de memória transaccional (STM refs dosync) | |
| + sistema agentes reactivos (agents) | |
| - ¿donde puedo usar clojure? | |
| + en java/JVM | |
| + en javascript (clojurescript) | |
| + puedes compartir código común. | |
| - polimórfico/oo (oo+ defmulti, protocols, records, types) | |
| - filosofía: pequeño conjunto de tipos con muchos metodos/funciones por tipo vs inversa. | |
| * sintaxis y evaluación | |
| ** estructura de datos () [] | |
| - List () | |
| - Vector [] | |
| - Map, Set | |
| ** evaluación por substitución | |
| - List no se evalua a una lista. | |
| + (El resto de estructuras si) | |
| - primer elemento lista es el operador | |
| + función (evalución por substitución) | |
| + special form (def, fn, if, do, let,...) | |
| + macro (cond, defn,...) | |
| - notación prefijo (* 2 (+ 1 2 3)) | |
| * Reader forms | |
| - Symbols | |
| - Keywords | |
| - Numbers (Rational, Enteros, Decimales) | |
| - String, Character | |
| - Boolean | |
| - nil | |
| - List (1 2) | |
| - Vector [1 2] | |
| - Map {:key "value"} | |
| - Set #{1 2} | |
| - deftype, defrecord | |
| * ¿Dondé esta my loop? | |
| - loop/recur | |
| - sequences (seqs) (Seq first, rest, cons) | |
| + | |
| - high order functions | |
| - lazy sequence | |
| * Java/Javascript interop | |
| * referencias | |
| ** clojure.org | |
| ** intro clojure for java programmers by Rich Hickey | |
| https://www.youtube.com/watch?v=P76Vbsk_3J0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment