; Los comentarios comienzan con un punto y coma. ; Cualquier cosa después del punto y coma es ignorado. ;;;;;;;;;;;;;;;;;;; ;;;Tipos Básicos;;; ;;;;;;;;;;;;;;;;;;; nil ; También conocido en otros lenguajes como nulo (null). ; Booleanos true false ; Las cadenas se encierran entre comillas dobles "desayuno húngaro" "tortilla de queso del granjero" ; Los caracteres están precedidos por barras invertidas \g \r \a \c \e ; Las palabras claves comienzan con dos puntos.Se comportan como las enumeraciones. Más o menos ; Como símbolos en Ruby :huevos :queso :aceitunas ; Los símbolos se utilizan para representar los identificadores.Estos empiezan con #. ; puedes tener espacios usando el símbolo /. cualquier cosa precedida / es ; un espacio en el nombre. #cuchara #cocina/cuchara ; no es lo mismo que #spoon #cocina/tenedor #github/tenedor ; no se puede comer con este. ; Números enteros y flotantes 42 3.14159 ; Las listas son secuencias de valores. (:bollo :empanada-de-res 9 "yum!") ; Vectores permiten acceso aleatorio [:helado 1 2 -2] ; Los mapas son estructuras de datos asociativos que se asocian con la clave de su valor. {:huevos 2 :jugo-de-limon 3.5 :mantequilla 1} ; Usted no está restringido a usar palabras clave como claves. {[1 2 3 4] "decirle a la gente lo que llevaba", [5 6 7 8] "Entre mas tu ves, mas lo odias"} ; Puede usar comas para facilitar la lectura. Se tratan como espacios en blanco. ; Los conjuntos son colecciones que contienen elementos únicos. #{:a :b 88 "huat"} ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;Elementos de etiqueta ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; EDN puede ser extendido por elementos de etiqueta con el símbolo #. #MyYelpClone/MenuItem {:nombre "huevos-Benedict" :clasificacion 10} ; Permíteme explicar esto con un ejemplo en colujre. Supongamos que quiero ; transformar ese pedazo de EDN en un registro del Menú. (defrecord MenuItem [nombre clasificacion]) ; Para transformar EDN en valores clojure, necesitaremos usar el constructor en EDN ; lectura, edn/read-string (edn/read-string "{:huevos 2 :mantequilla 1 :harina 5}") ; -> {:huevos 2 :mantequilla 1 :harina 5} ; Para transformar los elementos de etiqueta, definir la función de lectura y pasar un mapa ; que asigna etiquetas a funciones del lector de edn/read-string al igual que. (edn/read-string {:lectores {'MyYelpClone/MenuItem map->menu-item}} "#MyYelpClone/MenuItem {:nombre \"huevos-benedict\" :clasificacion 10}") ; -> #user.MenuItem{:nombre "huevos-benedict", :clasificacion 10}