racket Handledning
Komma igång med racket
Sök…
Anmärkningar
Det här avsnittet ger en översikt över vad racket är och varför en utvecklare kanske vill använda den.
Det bör också nämna alla stora ämnen inom racket och länka till relaterade ämnen. Eftersom dokumentationen för racket är ny kan du behöva skapa initialversioner av relaterade ämnen.
versioner
Hej världen!
Följande exempel förklarar att ett kodstycke ska skrivas i Racket och skriver sedan ut strängen Hello, world
.
#lang racket
"Hello, world!"
Racketkod kan antingen köras direkt från kommandoraden eller på DrRacket IDE. Att skriva racket
på kommandoraden startar en REPL, och att skriva racket
följt av ett filnamn utvärderar filens innehåll. Anta till exempel att filen hello.rkt
innehåller koden ovan. Här är ett exempel på att köra Racket på kommandoraden.
$ racket
Welcome to Racket v6.5.
> "Hello, world!"
"Hello, world!"
> (exit)
$ racket hello.rkt
"Hello, world!"
Racket
Racket är ett fullspektrum programmeringsspråk. Det går längre än Lisp och Scheme med dialekter som stöder objekt, typer, lata och mer. Racket gör det möjligt för programmerare att länka komponenter skrivna på olika dialekter, och det ger programmerare möjlighet att skapa nya, projektspecifika dialekter. Rackets bibliotek stöder applikationer från webbservrar och databaser till grafiska gränssnitt och diagram.
Den officiella, omfattande och mycket välskrivna dokumentationen kan hittas på [ http://docs.racket-lang.org/????1] . På den här webbplatsen (Stack Overflow Documentation) kan du hitta exempel som användarna har bidragit med.
Installation
Gå till http://racket-lang.org och klicka på nedladdningsknappen.
Enkel rekursiv funktionsdefinition
I Racket använder vi rekursion mycket ofta. Här är ett exempel på en funktion som summerar alla siffror från noll till parametern, n
.
(define (sum n)
(if (zero? n)
0
(+ n (sum (sub1 n)))))
Observera att det finns många användbara bekvämlighetsbaserade funktioner som används här, till exempel zero?
och sub1
. Var och en gör precis vad du kan förvänta dig: zero?
returnerar en boolean som säger om det givna antalet var lika med noll och sub1
subtraherar ett från dess argument.
Hitta racketkällor i alla underkataloger
#lang racket
(for ([path (in-directory)]
#:when (regexp-match? #rx"[.]rkt$" path))
(printf "source file: ~a\n" path))
Linjen #lang
anger programmeringsspråket för denna fil. #lang racket
använder vi baslinjen, batteriförsedd Rackets programmeringsspråk. Andra språk går från Racket-smaker som Type Racket ( #lang typed/racket
) eller dokumentationsspråket Scribble ( #lang scribble
), till små bekvämlighetsspråk som språket för att definiera paket ( #lang info
).
Funktionen i in-directory
konstruerar en sekvens som går ett katalogträd (börjar med den aktuella katalogen som standard) och genererar sökvägar i trädet. Den for
formen binder path
till varje väg i sekvensen, och regexp-match?
tillämpar ett mönster på banan.
För att köra exemplet, installera Racket, starta DrRacket, klistra in exempelprogrammet i det övre området i DrRacket och klicka på Kör-knappen. Spara programmet alternativt i en fil och kör racket
från kommandoraden på filen.
Installation eller installation
Installationen är mycket enkel. Om du är van vid denna typ, gå bara till https://download.racket-lang.org . Om du föredrar finns det mer detaljerade steg-för-steg-installationsinstruktioner för följande system: