Track
/
Clojure
Clojure
/
Esercizi
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

Esercizio di apprendimento

Introduzione

In Clojure, le liste sono collezioni, proprio come le liste in altri linguaggi. Come altri linguaggi della famiglia Lisp, Clojure usa le parentesi per esprimere le liste.

Le liste di Clojure si possono creare in due modi. La funzione list può creare una lista, oppure puoi fare il quote di una lista letterale.

Le liste sono speciali perché Clojure le tratta come chiamate. Si aspetta che la chiamata inizi con un operatore, che di solito è una funzione. Gli altri elementi della lista sono considerati operandi, cioè diventano gli argomenti della funzione.

Il trattamento speciale che Clojure riserva alle liste è il motivo per cui non possiamo creare direttamente una lista letterale. Fare il quote di una lista con quote o con la sua forma abbreviata ' indica che la lista non deve essere valutata.

A differenza di alcuni linguaggi moderni, le liste di Clojure sono eterogenee, cioè possono contenere al loro interno elementi di tipi diversi, ad esempio '(2 "a" "b" 3). A differenza di altri Lisp, una lista vuota in Clojure è truthy e non equivale a nil o false.

Istruzioni

In questo esercizio scriverai del codice per elaborare un elenco di linguaggi di programmazione con cui hai in programma di fare pratica sulla piattaforma Exercism.

Hai sei attività.

1. Crea un nuovo array

Prima di poter aggiungere dei linguaggi, devi iniziare creando un nuovo array. Definisci una funzione che restituisce un array vuoto.

(new-list)
;; => ()

2. Aggiungi un nuovo linguaggio all'array

Mentre esplori Exercism e trovi linguaggi che vuoi imparare, dovrai poterli aggiungere all'array. Definisci una funzione che aggiunge un nuovo linguaggio all'inizio dell'array.

(add-language '("Clojurescript") "JavaScript")
;; => '("JavaScript" "Clojurescript")

3. Controlla l'ultimo linguaggio aggiunto

Vorrai controllare rapidamente quale linguaggio hai appena aggiunto. Definisci una funzione che restituisce il primo linguaggio dell'array.

(first-language '("Haskell" "Python"))
;; => "Haskell"

4. Rimuovi il primo linguaggio dall'array

A volte cambierai idea su un linguaggio che hai appena aggiunto. Definisci una funzione che rimuove il primo linguaggio dall'array.

(remove-language '("Common Lisp" "Racket" "Scheme"))
;; => '("Racket" "Scheme")

5. Conta i linguaggi nell'array

Contare i linguaggi uno per uno è scomodo. Definisci una funzione che conta il numero di linguaggi nell'array.

(count-languages '("C#" "Racket" "Rust" "Ruby"))
;; => 4

6. Metti tutto insieme

Definisci una funzione learning-list, all'interno della quale userai alcune delle funzioni definite sopra.

  • Crea un array vuoto

  • Aggiungi 2 nuovi linguaggi di programmazione all'array.

    • "Clojure"
    • "Lisp"
  • Rimuovi "Lisp" dall'array, dato che potresti non avere abbastanza tempo quest'anno ed è molto simile a Clojure.

  • Aggiungi altri 2 linguaggi di programmazione all'array.

    • "Java"
    • "JavaScript"
  • Restituisci il numero totale di linguaggi. Suggerimento: dovrebbe essere 3.

(learning-list)
;; => 3
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Clojure Exercism

Vuoi iniziare Tracks on Tracks on Tracks?

Iscriviti a Exercism per imparare e padroneggiare Clojure con 12 concetti105 esercizi e il mentoring di persone reali, tutto gratis.