lunes, 24 de junio de 2024

Open Dylan

Dylan es un lenguaje funcional de objetos creado originalmente por Apple para Newton.

Dylan es un descendiente directo de Scheme y CLOS (sin la sintaxis Lisp) con un modelo de programación diseñado para admitir la generación eficiente de código de máquina, incluido un control detallado sobre comportamientos dinámicos y estáticos.

Empecemos con el clásico Hola, mundo.

format-out("Hola %s\n", "mundo en Dylan!!")

Para instalarlo eberás descargarlo del siguiente link:

https://github.com/dylan-lang/opendylan/releases/tag/v2023.1.0

(Open) Dylan tiene un REPL similar a lenguajes como Haskell, Clojure, etc.

?45 + 32;
=> 77
?45 - 32;
=> 13
?33 / 33;
=> 1

Si no deseas instalarlo, puede probarlo en el siguiente link:

https://play.opendylan.org/

El sitio provee algunos ejemplos, como el uso de ciclos for, clases, cálculo del Fibonacci, entre otros más.

for loop

for (i from 1,
     c in "abcdef",
     until: c = 'e')
  format-out("%d: %s\n", i, c);
end;

Cálculo del Fibonacci:

define method fib ()
  let a = 0;
  let b = 1;
  method ()
    let r = a + b;
    a := b;
    b := r;
    a
  end
end;

let f = fib();
for (i from 1 to 20) format-out("%= ", f()) end

Clases

// Classes are the primary way to build data structures in Dylan.
// Slots are accessed via normal function calls.

define class <account> (<object>)
  constant slot account-id :: <integer>,
    required-init-keyword: id:;
  constant slot account-name :: <string>,
    required-init-keyword: name:;
  slot account-balance :: <integer> = 0;
end;

let a = make(<account>, id: 1, name: "Zippy");
account-balance(a) := 500;
format-out("%s (#%d) balance = %d",
           account-name(a), account-id(a), account-balance(a));

Macros

define macro inc!
    { inc!(?var:name) } => { inc!(?var, 1) }
    { inc!(?var:name, ?val:expression) } => { ?var := ?var + ?val }
end;

let x = 0;
inc!(x);
inc!(x, 10);
format-out("x = %d\n", x);

Más sobre este lenguaje en próximas entregas.

Enlaces:

https://opendylan.org/
https://play.opendylan.org/

No hay comentarios:

Publicar un comentario

Vibe Coding (la programación vía IA): ¿el futuro de la programación?

Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

Etiquetas

Archivo del blog