typestar

Fundamentos del lenguaje

27 pasos en 9 series de Clojure.

Clojure es el Lisp que se instaló en la industria: corre sobre la JVM, llama directo a cualquier biblioteca de Java y rehízo la idea de Lisp alrededor de estructuras de datos inmutables — vectores, mapas y conjuntos que escribes como literales y transformas en vez de mutar. La mayoría de los programas son pipelines: los datos fluyen por map, filter y reduce, encadenados de izquierda a derecha con las macros -> y ->>.

Este tour cubre el núcleo de trabajo: def y let, los literales de colección y sus herramientas, defn con desestructuración, el juego con nil (nil punning) y la regla de que todo cuenta como verdadero salvo nil y false, la biblioteca de secuencias de map a frequencies, y el mínimo de estado — un átomo, un record — para modelar el cambio. El bis entrega programas completos. Cada fragmento se verifica leyendo el archivo entero; con la verificación de ejecución activada, cada uno carga y cada script corre de principio a fin.

Empieza este tour

Valores y vinculaciones

  • def y nombresNombra el inventario de un puesto de mercado con def y deriva un valor de los otros.
  • Locales con letConvierte medidas de una poza de marea dentro de un let, y el nombre revinculado vuelve después.
  • Keywords y símbolosLee la pista de un mixtape desde un mapa con keywords y la contrasta con un símbolo citado.

Colecciones

Funciones

  • Fundamentos de defnDefine el porcentaje de hidratación de un panadero con docstring y una auxiliar privada.
  • Funciones anónimasPasa funciones sin nombre a map y filter sobre una semana de lluvia medida.
  • Aridades múltiplesUna función de riego con aridad por defecto, más un armador de rótulos variádico.

Flujo y qué cuenta como verdadero

Secuencias

  • map y filterConteos de aves avistadas pasados por map, filter y mapv.
  • reduce y foldsPedidos de pan de una panadería plegados con reduce, incluso hacia un mapa.
  • Macros de encadenamientoUn pipeline de elevaciones escrito anidado, luego con ->>, y -> sobre un mapa.

Herramientas de seq

  • frequencies y group-byConteo de palabras con frequencies y paradas de metro agrupadas por group-by.
  • sort-by y intoUna caja de discos ordenada por año y por reproducciones, y luego vertida con into.
  • comp y partialLecturas de una estación meteorológica convertidas por funciones de comp y partial.

Desestructuración

Estado y records

  • Átomos y swap!Lleva en átomos el conteo de visitas y el registro de recepción, y actualiza los dos con funciones comunes.
  • Actualizar mapas anidadosLee y reescribe un inventario de herramientas de dos niveles por rutas de claves, sin anidar a mano.
  • Protocolos y recordsDeclara una operación de cobro como protocolo y dos tipos de record la responden distinto.

Bis

  • word_freq.cljCuenta palabras de un pasaje breve sobre un puerto e imprime las ocho más frecuentes con su porcentaje.
  • grade_report.cljPromedia tres notas por estudiante, asigna una letra de calificación y cierra con un resumen del curso.
  • temp_stats.cljInforma una semana de máximas con una barra a escala por día y la distancia de cada día a la media.

Los otros tours de Clojure