racket Tutorial
Empezando con la raqueta
Buscar..
Observaciones
Esta sección proporciona una descripción general de qué es la raqueta y por qué un desarrollador puede querer usarla.
También debe mencionar cualquier tema grande dentro de la raqueta y vincular a los temas relacionados. Dado que la Documentación para la raqueta es nueva, es posible que deba crear versiones iniciales de los temas relacionados.
Versiones
¡Hola Mundo!
El siguiente ejemplo declara que un fragmento de código se escribe 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. Al escribir racket
en la línea de comando, se iniciará una REPL, y al escribir racket
seguida de un nombre de archivo se evaluará el contenido del archivo. Por ejemplo, supongamos que el archivo hello.rkt
contiene el código anterior. Este es un ejemplo de la ejecución de Racket en la línea de comandos.
$ racket
Welcome to Racket v6.5.
> "Hello, world!"
"Hello, world!"
> (exit)
$ racket hello.rkt
"Hello, world!"
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, holgazanería 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/◆◆1] . En este sitio (Documentación de desbordamiento de pila) puede encontrar ejemplos aportados por usuarios.
Instalación
Vaya a http://racket-lang.org y haga clic en el botón de descarga.
Definición de función recursiva simple
En Racket, usamos la recursión muy frecuentemente. 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 hay muchas funciones útiles basadas en la conveniencia utilizadas aquí, como zero?
y sub1
. Cada uno, respectivamente, hace exactamente lo que podrías esperar: zero?
devuelve un valor booleano que indica si el número dado era igual a cero y sub1
resta uno de su argumento.
Encuentra fuentes de raqueta 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 de Raqueta, línea de base y batería incluida. Hay otros idiomas que van desde Racket flavors como Type Racket ( #lang typed/racket
) o el lenguaje de documentación Scribble ( #lang scribble
), hasta lenguajes pequeños como el idioma para definir paquetes ( #lang info
).
La función in-directory
construye una secuencia que recorre un árbol de directorios (comenzando con el directorio actual, de manera predeterminada) y genera rutas en el árbol. La forma for
vincula la path
a cada ruta en la secuencia y regexp-match?
Aplica un patrón al camino.
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 la racket
desde la línea de comandos en el archivo.
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: