Tracks
/
Clojure
Clojure
/
Übungen
/
Tracks on Tracks on Tracks
Tracks on Tracks on Tracks

Tracks on Tracks on Tracks

Lernübung

Einführung

In Clojure sind Listen Sammlungen, genau wie Listen in anderen Sprachen. Wie andere Sprachen aus der Lisp-Familie verwendet Clojure runde Klammern, um Listen auszudrücken.

Clojure-Listen kannst du auf zwei Arten erstellen. Die Funktion list kann eine Liste erzeugen, oder du quotest ein Listen-Literal mit quote.

Listen sind etwas Besonderes, weil Clojure sie als Aufrufe behandelt. Es erwartet, dass der Aufruf mit einem Operator beginnt, der normalerweise eine Funktion ist. Die übrigen Elemente der Liste gelten als Operanden, das heißt, sie werden zu den Argumenten der Funktion.

Wegen dieser besonderen Behandlung von Listen können wir kein Listen-Literal direkt erstellen. Wenn du eine Liste mit quote oder der Kurzschreibweise ' quotest, zeigst du damit an, dass die Liste nicht ausgewertet werden soll.

Anders als manche modernen Sprachen sind Clojure-Listen heterogen, sie können also intern Elemente verschiedener Typen enthalten, z. B. '(2 "a" "b" 3). Anders als andere Lisps ist eine leere Liste in Clojure truthy und nicht gleichwertig zu nil oder false.

Anleitung

In dieser Übung schreibst du Code, um eine Liste von Programmiersprachen zu verarbeiten, die du auf der Exercism-Plattform üben möchtest.

Du hast sechs Aufgaben.

1. Erstelle eine neue Liste

Bevor du Sprachen hinzufügen kannst, musst du zuerst eine neue Liste erstellen. Definiere eine Funktion, die eine leere Liste zurückgibt.

(new-list)
;; => ()

2. Füge eine neue Sprache zur Liste hinzu

Wenn du Exercism erkundest und Sprachen findest, die du lernen möchtest, musst du sie zu deiner Liste hinzufügen können. Definiere eine Funktion, die eine neue Sprache am Anfang deiner Liste hinzufügt.

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

3. Prüfe die zuletzt hinzugefügte Sprache

Du möchtest schnell prüfen können, welche Sprache du gerade hinzugefügt hast. Definiere eine Funktion, die die erste Sprache aus deiner Liste zurückgibt.

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

4. Entferne die erste Sprache aus der Liste

Manchmal änderst du deine Meinung über eine Sprache, die du gerade hinzugefügt hast. Definiere eine Funktion, die die erste Sprache aus deiner Liste entfernt.

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

5. Zähle die Sprachen in der Liste

Die Sprachen einzeln zu zählen ist umständlich. Definiere eine Funktion, die die Anzahl der Sprachen in deiner Liste zählt.

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

6. Füge alles zusammen

Definiere eine Funktion learning-list, in der du einige der oben definierten Funktionen verwendest.

  • Erstelle eine leere Liste.

  • Füge 2 neue Programmiersprachen zur Liste hinzu.

    • "Clojure"
    • "Lisp"
  • Entferne "Lisp" aus der Liste, da du für dieses Jahr vielleicht nicht genug Zeit hast und es Clojure recht ähnlich ist.

  • Füge 2 weitere Programmiersprachen zur Liste hinzu.

    • "Java"
    • "JavaScript"
  • Gib die Gesamtzahl der Sprachen zurück. Hinweis: Es sollten 3 sein.

(learning-list)
;; => 3
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Clojure Exercism

Bereit, mit Tracks on Tracks on Tracks zu starten?

Melde dich bei Exercism an, um Clojure mit 12 Konzepte105 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.