Creare un'applicazione
I capitoli seguenti ti guideranno nello sviluppo di una semplice applicazione con Guile.
Come nei primi capitoli, propongo di affrontare l'esercizio attraverso pratiche e metodi di sviluppo che apprezzo molto (Test Driven Development, Clean Code, Clean Architecture).
Cercherò di darti le conoscenze essenziali per andare avanti e dove trovare ulteriori informazioni (se vuoi andare oltre).
Per prima cosa assicurati che la tua installazione di Guile funzioni.
Secondariamente, implementa i primi casi d'uso dell'applicazione con l'interfaccia a riga di comando. Esporrò alcuni concetti chiave. Questa sarà anche l'occasione per impostare il tracciamento delle versioni e la documentazione.
Infine, imparerai a sfruttare librerie di terze parti per estendere il tuo programma (ad esempio, per avere un'interfaccia grafica e web). Imparerai anche a gestire le dipendenze e a distribuire il tuo programma utilizzando un gestore di pacchetti.
Prerequisiti: Questa esercitazione non sostituisce un'introduzione alla programmazione e si aspetta che l'utente abbia familiarità con alcuni concetti di base. Dovresti essere a tuo agio nell'uso della riga di comando. Se sai già programmare in altri linguaggi, questo tutorial può essere un buon primo contatto con Guile.
Ottenere aiuto: Se in qualsiasi momento ti senti sopraffatto o confuso da una funzione che stai utilizzando, dai un'occhiata a [la reference ufficiale del linguaggio] (https://www.gnu.org/software/guile/manual/html_node/index.html). Viene distribuita con la maggior parte delle installazioni di Guile (accessibile da terminale:
info guile
).
Quindi, che tipo di applicazione creerai? Che ne dici di un'applicazione per la lista della spesa? Una piccola utility a cui daremo come input :
- un flag che indica cosa aggiungere (
--add
) o rimuovere (--remove
) dalla lista; - l'elemento che vogliamo aggiungere (
tomatoes
) o l'indice di quello che vogliamo rimuovere (12
).
e che restituisce il contenuto dell'elenco in assenza di argomenti:
$ grocery-list
1. Quinoa
2. Mushrooms
3. Rice
4. Lentils
5. Spinach
Nota: Questo tutorial è stato scritto per Guile 3. Gli esempi di codice possono essere utilizzati in tutte le versioni di Guile 3.