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.