typestar

Fundamentos del lenguaje

27 pasos en 9 series de Julia.

Julia es el lenguaje construido sobre una negativa: que la gente de ciencia no debería prototipar en un lenguaje y reescribir en otro por velocidad. Nacido en el MIT en 2012, compila con JIT el código dinámico y matemático a velocidad de máquina, y su idea insignia — el despacho múltiple, donde el tipo de cada argumento elige el método — resulta ser la razón de que las bibliotecas científicas compongan tan bien. Corre modelos climáticos, ensayos de fármacos y media astronomía cuantitativa.

Este tour teclea el núcleo: ataduras e interpolación, rangos y comprensiones, definiciones de función de una línea y despacho múltiple, bloques do, varargs y argumentos de palabra clave, vectores 1-indexados con mutación marcada por !, Dicts y tuplas con nombre, el punto de broadcasting que vectoriza lo que sea, matrices integradas, structs inmutables y paramétricos con despacho por tipos abstractos, pipes, manejo de errores, y los macros de todos los días de @show a @printf. El Bis es el trío de scripts de siempre en Julia de sabor numérico — argmin, diff y columnas de Printf.

Empieza este tour

Valores

  • La forma del scriptEl Julia más pequeño: ataduras y println, sin ceremonia alguna.
  • Variables y tiposLas ataduras no llevan palabra clave; el valor carga el tipo.
  • StringsInterpolación con $, concatenación con *, repetición con ^.

Control de flujo

  • if, elseif y guardasLos bloques cierran con end; && y || hacen de guardas de una línea.
  • Bucles y rangosstart:stop y start:step:stop manejan el for; while guarda.
  • ComprensionesArma un arreglo desde una expresión, un rango y un filtro opcional.

Funciones

Colecciones

Broadcasting

  • BroadcastingUn punto vectoriza cualquier función u operador.
  • map, filter, reduceEl trío funcional, más transformaciones dentro de los pliegues.
  • MatricesArreglos 2-D integrados: espacios para columnas, ; para filas.

Tipos

  • StructsInmutables por defecto; mutable es una promesa aparte.
  • Tipos abstractosNombra la familia, despacha sobre ella, sobreescribe por tipo concreto.
  • Tipos paramétricosLa T entre llaves se elige por uso y se acota con <:.

Idiomas del lenguaje

  • Pipes|> alimenta de izquierda a derecha; los pipes con punto difunden.
  • Varargs y palabras clave... junta argumentos; las palabras clave viven tras el punto y coma.
  • Errorestryparse para el fallo esperado, throw/try/catch para el resto.

Macros y formato

  • Macros@show, @assert y @time — los tres de todos los días.
  • PrintfFormato estilo C desde la biblioteca estándar.
  • Ordenarby= elige la clave, rev= la dirección, sortperm los índices.

Bis

  • word_freq.jlUna tabla de frecuencias con split, un Dict de conteo y una clave doble.
  • grade_report.jlBoletines desde un roster de structs, guardas de nota y vcat.
  • temp_stats.jlUna semana de temperaturas: argmin/argmax, barras y diff.

Los otros tours de Julia