racketAan de slag met racket


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

Versie Documentatie Publicatiedatum
Nightly bouwt Nieuwste documentatie 2999/12/31
Versie 6.9 Documentatie 2017/04/01
Versie 6.8 Documentatie 2017/01/01
Versie 6.7 Documentatie 2016/10/01
Versie 6.6 Documentatie 2016/07/01
Versie 6.5 Documentatie 2016/04/01
Versie 6.4 Documentatie 2016/02/01
Versie 6.3 Documentatie 2015/11/01
Versie 6.2.1 Documentatie 2015/08/01
Versie 6.2 Documentatie 2015/06/01
Versie 6.1.1 Documentatie 2014/11/01
Versie 6.1 Documentatie 2014/08/01
Versie 6.0.1 Documentatie 2014-05-01
Versie 6.0 Documentatie 2014/02/01
Versie 5.93 Documentatie 2014/01/01
Versie 5.92 Documentatie 2014/01/01
Versie 5.3.6 Documentatie 2013/08/01
Versie 5.3.5 Documentatie 2013/06/01
Versie 5.3.4 Documentatie 2013/05/01
Versie 5.3.3 Documentatie 2013/02/01
Versie 5.3.2 Documentatie 2013/02/01
Versie 5.3.1 Documentatie 2012-11-01
Versie 5.3 Documentatie 2012-08-01
Versie 5.2.1 Documentatie 2012-03-01
Versie 5.2 Documentatie 2011-11-01
Versie 5.1.3 Documentatie 2011-08-01
Versie 5.1.2 Documentatie 2011-08-01
Versie 5.1.1 Documentatie 2011-04-01
Versie 5.1 Documentatie 2011-02-01
Versie 5.0.2 Documentatie 2010-11-01
Versie 5.0.1 Documentatie 2010-08-01
Versie 5.0 Documentatie 2010-06-01

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.

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!"
 

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:

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.