racket Samouczek
Pierwsze kroki z rakietą
Szukaj…
Uwagi
Ta sekcja zawiera przegląd tego, czym jest rakieta i dlaczego deweloper może chcieć z niej skorzystać.
Powinien również wymieniać wszelkie duże tematy w obrębie rakiety i link do powiązanych tematów. Ponieważ Dokumentacja dotycząca rakiety jest nowa, może być konieczne utworzenie początkowych wersji tych pokrewnych tematów.
Wersje
Witaj świecie!
W poniższym przykładzie zadeklarowano fragment kodu do zapisania w Racket, a następnie wypisano napis Hello, world
.
#lang racket
"Hello, world!"
Kod rakiety można uruchomić bezpośrednio z wiersza poleceń lub w IDR DrRacket. Wpisanie racket
w wierszu poleceń uruchomi REPL, a po wpisaniu racket
nazwa pliku oceni zawartość pliku. Załóżmy na przykład, że plik hello.rkt
zawiera powyższy kod. Oto przykład uruchomienia rakiety w wierszu poleceń.
$ racket
Welcome to Racket v6.5.
> "Hello, world!"
"Hello, world!"
> (exit)
$ racket hello.rkt
"Hello, world!"
Rakieta
Rakieta to język programowania z pełnym spektrum. Wykracza poza Lisp i Scheme z dialektami, które obsługują przedmioty, typy, lenistwo i wiele innych. Racket umożliwia programistom łączenie komponentów napisanych w różnych dialektach i umożliwia programistom tworzenie nowych, specyficznych dla projektu dialektów. Biblioteki rakiet obsługują aplikacje od serwerów internetowych i baz danych po GUI i wykresy.
Oficjalna, kompleksowa i bardzo dobrze napisana dokumentacja znajduje się na [ http://docs.racket-lang.org/][1] . Na tej stronie (Dokumentacja przepełnienia stosu) można znaleźć przykłady autorstwa użytkowników.
Instalacja
Wejdź na http://racket-lang.org i kliknij przycisk pobierania.
Prosta definicja funkcji rekurencyjnej
W Racket bardzo często używamy rekurencji. Oto przykład funkcji, która sumuje wszystkie liczby od zera do parametru n
.
(define (sum n)
(if (zero? n)
0
(+ n (sum (sub1 n)))))
Zauważ, że jest tu wiele przydatnych funkcji opartych na wygodzie, takich jak zero?
i sub1
. Każdy z nich robi dokładnie to, czego można się spodziewać: zero?
zwraca wartość logiczną, która mówi, czy podana liczba była równa zero, a sub1
odejmuje jedną z jej argumentu.
Znajdź źródła rakiet we wszystkich podkatalogach
#lang racket
(for ([path (in-directory)]
#:when (regexp-match? #rx"[.]rkt$" path))
(printf "source file: ~a\n" path))
Wiersz #lang
określa język programowania tego pliku. #lang racket
używamy podstawowego, programowanego języka programowania dla #lang racket
. Inne języki, od wersji Racket, takie jak Type Racket ( #lang typed/racket
) lub język dokumentacji Scribble ( #lang scribble
), do małych wygodnych języków, takich jak język definiowania pakietów ( #lang info
).
Funkcja in-directory
konstruuje sekwencję, która chodzi po drzewie katalogów (domyślnie zaczynając od katalogu bieżącego) i generuje ścieżki w drzewie. Forma for
wiąże path
z każdą ścieżką w sekwencji i regexp-match?
stosuje wzór do ścieżki.
Aby uruchomić przykład, zainstaluj Racket, uruchom DrRacket, wklej przykładowy program do górnego obszaru w DrRacket i kliknij przycisk Uruchom. Alternatywnie, zapisz program do pliku i uruchom racket
z wiersza poleceń pliku.
Instalacja lub konfiguracja
Instalacja jest bardzo prosta. Jeśli jesteś przyzwyczajony do tego rodzaju rzeczy, po prostu przejdź do https://download.racket-lang.org . Jeśli wolisz, dostępne są bardziej szczegółowe instrukcje instalacji krok po kroku dla następujących systemów: