Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Clojure for JS developer

Clojure for JS developer

Introduction for js developer at the clojure world.

Jesse cogollo

January 26, 2018

Transcript

29 slides
  1. Clojure for JS developer Clojurescripting @jessecogollo Software developer at Advice

    Interactive group co-organizer of @medellinjs/@mongodbmedellin/@jsconfco and @avanet member.
  2. qué significa eso? • Clojure para Jesse Developer • Clojure

    para JS developers • Clojurescripting basado en javascripting
  3. Qué conoceremos hoy • Que es clojure (prefix notation) •

    leiningen ◦ Entendiendo la estructura del proyecto ◦ REPL • Emacs ◦ CIDER ◦ Paredit • Visual Studio Code ◦ code extension (clojure 0.9.3)
  4. Qué conoceremos hoy • Clojure ◦ Syntax () ◦ Data

    Structures (inmutable) ▪ Strings ▪ Numbers ▪ Naming values (def) ▪ vectors (array) ▪ maps (object) ▪ defining functions
  5. Clojurescripting Ahora sí, lo interesante…. Codigo !!!! 1) instalar Emacs

    ó VSCode 2) lein new clojurescripting && cd clojurescripting 3) en el directorio src/clojurescripting crear los siguientes archivos ◦ introduction.clj ◦ variables.clj ◦ strings.clj ◦ string-length.clj ◦ edit-string.clj (imposible) ◦ numbers.clj ◦ rounding-number.clj ◦ number-to-string.clj (imposible) ◦ if.clj
  6. Cloujurescripting 3) en el directorio src/clojurescripting crear los siguientes archivos

    (continuación) ◦ for.clj ◦ array.clj ◦ filter.clj ◦ accessing-array-values.clj ◦ looping-through-array.clj ◦ objects.clj ◦ object-properties.clj ◦ functions.clj ◦ function-arguments.clj
  7. variables.clj JS: const example = ‘Hello from variable’; console.log(example); --------------------------------------------------------

    Clojure: (def example "Hello from variable") (println example) En este ejercicio vamos a definir una variable, le asignamos un valor y lo imprimimos. O como se diria en clojurian: asignar un nombre a una estructura de datos.
  8. strings.clj JS: const example = ‘Hello world’; console.log(example); -------------------------------------------------------- Clojure:

    (def example (str "Hello " "world")) (println example) En este ejercicio vamos a definir un string, lo vamos a guardar en una variable y lo imprimimos.
  9. string-length.clj JS: const example = ‘Hello from variable’; const length

    = example.length; console.log(length); -------------------------------------------------------- Clojure: (def example "Hello from variable") (println (count example)) En este ejercicio vamos a definir un string, lo vamos a guardar en una variable y lo imprimimos.
  10. edit-string.clj JS: const example = ‘Hello variable’; example = example.replace(‘Hello’,

    ‘Bye’); console.log(example); -------------------------------------------------------- Clojure: (require '[clojure.string :as str]) (def example "Hello variable") (def new-example (str/replace example #"Hello" "Bye")) (println new-example) En este ejercicio vamos a definir un string, lo editamos y lo imprimimos.
  11. number.clj JS: const number = 123; console.log(number); -------------------------------------------------------- Clojure: (def

    variable-integer 123) (def variable-float 1.2) (def variable-ratio 1/5) (println variable-integer) (println variable-float) (println variable-ratio) En este ejercicio vamos a definir un número, lo vamos a guardar en una variable y lo imprimimos.
  12. rounding-number.clj JS: const number = 1.6; const rounded = Math.round(number);

    console.log(rounded); -------------------------------------------------------- Clojure: (def number 1.6) (def rounded (Math/round number)) (println rounded) En este ejercicio vamos a definir un float, y vamos a implementar un round y lo guardamos el resultado en una nueva variable.
  13. number-to-string.clj JS: const number = 256; number = number.toString(); console.log(number);

    -------------------------------------------------------- Clojure: (def number 256) (def number-to-string (str number)) (println number-to-string) En este ejercicio vamos a definir un número, y vamos a generar un string del número.
  14. if.clj JS: const year = 2018; if (year === 2018)

    { console.log(‘Happy new year !!!’); } else { console.log(‘Are you kidding me?’); } -------------------------------------------------------- Clojure: (def year 2018) (if (= year 2018) (println "Happy new year !!!") (println "Are you kidding me?")) En este ejercicio vamos a implementar un if sencillo.
  15. for.clj JS: for(x = 0; i < 10; i++) {

    console.log(‘x’, x); } -------------------------------------------------------- Clojure: (for [x[1 2 3 4 5 6 7 8 9 10]] (println ‘x ’ x)) En este ejercicio vamos a hacer un for simple.
  16. array.clj JS: const array = [‘vector’,’is the new’,’array’]; console.log(array); --------------------------------------------------------

    Clojure: (def array ["vector" "is the new" "array"]) (println array) En clojure vectors, en este ejercicio vamos a definir un vector con tres valores y lo imprimimos en pantalla.
  17. filter.clj JS: const animals = [“dog” “bird”, “cat”]; const noFly

    = example.filter((animal) => animal != “bird”); console.log(noFly); -------------------------------------------------------- (def animals ["dog" "bird" "cat"]) (defn filterAnimal [animal] (not= animal "bird")) (def no-fly (filter filterAnimal animals)) (println no-fly) En este ejercicio vamos a definir un vector con tres animales, le implementamos la función filter para filtrar la lista e imprimir el resultado.
  18. accessing-array-values.clj JS: const animals = [‘dog’, ‘cat’, ‘bird’, ‘rat’]; const

    animal = animals[0]; console.log(animal); -------------------------------------------------------- Clojure: (def animals ["cat" "dog" "bird" "rat"]) (def animal (get animals 0)) (println animal) En este ejercicio vamos a definir un array, y vamos a acceder al primer elemento.
  19. looping-through-array.clj JS: const animals = [‘cat’,’dog’,’rat’]; var animalss = animals.map((animal)

    => `${animal}s`); console.log(animalss); -------------------------------------------------------- Clojure: (def animals ["cat" "dog" "rat"]) (def animalss (map (fn [animal] (str animal "s")) animals)) (println animalss) En este ejercicio vamos a definir un string, lo vamos a guardar en una variable y lo imprimimos.
  20. objects.clj JS: const dog = { animal: true, bark: “Woof…

    Woof !!!”, legs: 4 }; console.log(dog); -------------------------------------------------------- Clojure: (def dog { :animal true :bark "Woof... Woof !!!" :legs 4 }) (println dog) En este ejercicio vamos a definir un objeto ó en Clojurian maps, y lo imprimimos.
  21. object-properties.clj JS: const dog = { animal: true, bark: “Woof---

    Woof !!!”, legs: 4}; const dogBark1 = dog.bark; const dogBark2 = dog[bark]; console.log(dogBark1); console.log(dogBark2); -------------------------------------------------------- Clojure: (def dog { :animal true :bark "Woof... Woof !!!" :legs 4 }) (def dog-bark (get dog :bark)) (println dog-bark) En este ejercicio vamos a definir un string, lo vamos a guardar en una variable y lo imprimimos.
  22. functions.clj JS: function fnHello() { return “Hello world from function”;

    }; console.log(fnHello()); -------------------------------------------------------- Clojure: (defn fnHello [] "Hello world from function") (println (fnHello)) En este ejercicio vamos a definir una función, que retorna un string y lo imprimimos.
  23. function-arguments.clj JS: function fnHello(name) { return `Hello ${name} from function`;

    }; console.log(fnHello(“jesse”)); -------------------------------------------------------- Clojure: (defn fnHello [name] (str "Hello " name " from function")) (println (fnHello "Jesse")) En este ejercicio vamos a definir una función que recibe un parámetro, y retorna un string con un saludo.

More Decks by Jesse cogollo

Other Decks in Technology