Il tuo primo programma
Scrivi una funzione come una tabella, eseguila con ridgunc run e compila un eseguibile nativo.
Crea un file chiamato hello.rg:
fn :: greet String => String
greet "" = "Hello, mysterious traveler!"
greet "Root" = "Hey there, Root! Careful what you delete today."
greet name = "Hello, {name}! Welcome to Ridgun."
fn :: main => ()
main =
echo (greet "Ada")
echo (greet "Root")
echo (greet "")
Leggilo come una tabella. La prima riga è la firma: greet riceve una String e restituisce una String. Ogni riga sotto è una clausola, e risponde la prima clausola il cui pattern corrisponde all'argomento. {name} dentro una stringa inserisce in quel punto il valore di name.
Eseguilo
ridgunc run hello.rg
Hello, Ada! Welcome to Ridgun.
Hey there, Root! Careful what you delete today.
Hello, mysterious traveler!
ridgunc run compila il file e lo esegue subito. ridgunc check hello.rg controlla solo i tipi, ed è il modo più rapido per trovare un errore.
Compila un eseguibile
ridgunc build hello.rg -o hello
./hello
hello è un eseguibile ELF64 statico. Copialo su qualsiasi macchina Linux con lo stesso processore e funziona: non c'è nessun runtime da installare.
Guardie
Quando la scelta dipende da una condizione e non da un pattern, usa le guardie. Ogni riga | viene provata in ordine:
fn :: size Int => String
size n =
| n == 0 = "nothing"
| n < 100 = "small"
| otherwise = "large"