Empezando con la raqueta
Raqueta
Racket es un lenguaje de programación de espectro completo. Va más allá de Lisp y Scheme con dialectos que admiten objetos, tipos, pereza y más. Racket permite a los programadores vincular componentes escritos en diferentes dialectos y permite a los programadores crear nuevos dialectos específicos del proyecto. Las bibliotecas de Racket admiten aplicaciones desde servidores web y bases de datos hasta GUI y gráficos.
La documentación oficial, completa y muy bien escrita se puede encontrar en http://docs.racket-lang.org/. En este sitio (Documentación de desbordamiento de pila) puede encontrar ejemplos aportados por los usuarios.
Instalación
Vaya a http://racket-lang.org y haga clic en el botón de descarga.
¡Hola Mundo!
El siguiente ejemplo declara que un fragmento de código se escribirá en Racket y luego imprime la cadena Hello, world
.
#lang racket
"Hello, world!"
El código de la raqueta se puede ejecutar directamente desde la línea de comandos o en el IDE de DrRacket. Escribir racket
en la línea de comando iniciará un REPL, y escribir racket
seguido de un nombre de archivo evaluará el contenido del archivo. Por ejemplo, suponga que el archivo hello.rkt
contiene el código anterior. Aquí hay un ejemplo de cómo ejecutar Racket en la línea de comando.
$ racket
Welcome to Racket v6.5.
> "Hello, world!"
"Hello, world!"
> (exit)
$ racket hello.rkt
"Hello, world!"
Definición de función recursiva simple
En Racket, usamos la recursividad con mucha frecuencia. Aquí hay un ejemplo de una función que suma todos los números desde cero hasta el parámetro n
.
(define (sum n)
(if (zero? n)
0
(+ n (sum (sub1 n)))))
Tenga en cuenta que aquí se utilizan muchas funciones útiles basadas en la conveniencia, como zero?
y sub1
. Cada uno hace exactamente lo que cabría esperar: zero?
devuelve un valor booleano que dice si el número dado era igual a cero, y sub1
resta uno de su argumento.
Instalación o configuración
La instalación es muy sencilla. Si está acostumbrado a este tipo de cosas, simplemente vaya a https://download.racket-lang.org. Si lo prefiere, hay instrucciones de instalación paso a paso más detalladas para los siguientes sistemas:
Encuentra fuentes de Racket en todos los subdirectorios
#lang racket
(for ([path (in-directory)]
#:when (regexp-match? #rx"[.]rkt$" path))
(printf "source file: ~a\n" path))
La línea #lang
especifica el lenguaje de programación de este archivo. #lang racket
estamos usando el lenguaje de programación básico de Racket con batería incluida. Otros lenguajes van desde sabores de Racket como Type Racket (#lang typed/racket
) o el lenguaje de documentación Scribble (#lang scribble
), hasta pequeños lenguajes de conveniencia como el lenguaje para definir paquetes (#lang info
) .
La función en directorio
construye una secuencia que recorre un árbol de directorios (comenzando con el directorio actual, por defecto) y genera rutas en el árbol. La forma for
vincula path
a cada ruta en la secuencia, y regexp-match?
aplica un patrón a la ruta.
Para ejecutar el ejemplo, instale Racket, inicie DrRacket, pegue el programa de ejemplo en el área superior de DrRacket y haga clic en el botón Ejecutar. Alternativamente, guarde el programa en un archivo y ejecute racket
desde la línea de comando en el archivo.