racket Zelfstudie
Aan de slag met racket
Zoeken…
Opmerkingen
Deze sectie geeft een overzicht van wat racket is en waarom een ontwikkelaar het misschien wil gebruiken.
Het moet ook alle grote onderwerpen in het racket vermelden en een link naar de gerelateerde onderwerpen bevatten. Aangezien de documentatie voor racket nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.
versies
Hallo Wereld!
In het volgende voorbeeld wordt aangegeven dat een stuk code in Racket moet worden geschreven en wordt vervolgens de tekenreeks Hello, world
afgedrukt.
#lang racket
"Hello, world!"
Racketcode kan rechtstreeks vanaf de opdrachtregel of op de DrRacket IDE worden uitgevoerd. Als u racket
op de opdrachtregel typt, wordt een REPL gestart en als u racket
typt gevolgd door een bestandsnaam, wordt de inhoud van het bestand geëvalueerd. Stel bijvoorbeeld dat het bestand hello.rkt
de bovenstaande code bevat. Hier is een voorbeeld van het uitvoeren van Racket op de opdrachtregel.
$ racket
Welcome to Racket v6.5.
> "Hello, world!"
"Hello, world!"
> (exit)
$ racket hello.rkt
"Hello, world!"
Racket
Racket is een programmeertaal met een volledig spectrum. Het gaat verder dan Lisp en Scheme met dialecten die objecten, types, luiheid en meer ondersteunen. Racket stelt programmeurs in staat componenten te koppelen die in verschillende dialecten zijn geschreven, en het stelt programmeurs in staat om nieuwe, projectspecifieke dialecten te creëren. De bibliotheken van Racket ondersteunen applicaties van webservers en databases tot GUI's en grafieken.
De officiële, uitgebreide en zeer goed geschreven documentatie is te vinden op [ http://docs.racket-lang.org/ Op deze site (Stack Overflow Documentation) vindt u voorbeelden die door gebruikers zijn bijgedragen.
Installatie
Ga naar http://racket-lang.org en klik op de downloadknop.
Eenvoudige recursieve functiedefinitie
In Racket gebruiken we recursie heel vaak. Hier is een voorbeeld van een functie die alle getallen van nul optelt tot de parameter n
.
(define (sum n)
(if (zero? n)
0
(+ n (sum (sub1 n)))))
Merk op dat hier veel handige, op comfort gebaseerde functies worden gebruikt, zoals zero?
en sub1
. Elk doet precies wat je zou verwachten: zero?
geeft een boolean terug die zegt of het gegeven getal gelijk was aan nul, en sub1
trekt er een af van zijn argument.
Vind Racket-bronnen in alle submappen
#lang racket
(for ([path (in-directory)]
#:when (regexp-match? #rx"[.]rkt$" path))
(printf "source file: ~a\n" path))
De regel #lang
geeft de programmeertaal van dit bestand aan. #lang racket
we gebruiken de baseline, inclusief batterij-racket programmeertaal. Andere talen variëren van Racket-smaken zoals Type Racket ( #lang typed/racket
) of de documentatie-taal Scribble ( #lang scribble
), tot kleine handige talen zoals de taal voor het definiëren van pakketten ( #lang info
).
De functie in-directory
construeert een reeks die door een directorystructuur loopt (standaard beginnend met de huidige directory) en paden in de structuur genereert. Het for
formulier bindt path
aan elk pad in de reeks en regexp-match?
past een patroon toe op het pad.
Om het voorbeeld uit te voeren, installeer Racket, start DrRacket, plak het voorbeeldprogramma in het bovenste gebied in DrRacket en klik op de knop Uitvoeren. U kunt het programma ook opslaan in een bestand en racket
vanaf de opdrachtregel in het bestand.
Installatie of instellingen
De installatie is heel eenvoudig. Als je dit soort dingen gewend bent, ga je gewoon naar https://download.racket-lang.org . Als u wilt, zijn er gedetailleerdere stapsgewijze installatie-instructies voor de volgende systemen: