A Clojurében a listák kollekciók, csakúgy, mint más nyelvek listái. A Lisp család többi nyelvéhez hasonlóan a Clojure kerek zárójelekkel fejezi ki a listákat.
A Clojure listáit kétféleképpen hozhatod létre. A list függvénnyel létrehozhatsz egy listát, vagy quote-tal idézhetsz egy literál listát.
A listák azért különlegesek, mert a Clojure hívásokként kezeli őket. Azt várja, hogy a hívás egy operátorral kezdődjön, ami általában egy függvény. A lista többi elemét operandusnak tekinti, vagyis ezek lesznek a függvény argumentumai.
Éppen amiatt, ahogy a Clojure a listákat kezeli, nem hozhatunk létre közvetlenül literál listát. Ha egy listát quote-tal vagy annak rövidítésével, a ' jellel idézel, az jelzi, hogy a listát nem szabad kiértékelni.
Néhány modern nyelvtől eltérően a Clojure listái heterogének, vagyis belül többféle típusú elemet is tartalmazhatnak, például '(2 "a" "b" 3).
Más Lispekkel ellentétben a Clojurében az üres lista igaz értékű, és nem egyenlő a nil-lel vagy a false-szal.
Ebben a feladatban olyan kódot írsz, amely azoknak a programozási nyelveknek a listáját dolgozza fel, amelyeket az Exercism platformon szeretnél gyakorolni.
Hat részfeladat vár rád.
Mielőtt nyelveket adhatnál hozzá, először létre kell hoznod egy új listát. Definiálj egy függvényt, amely egy üres listát ad vissza.
(new-list)
;; => ()
Miközben az Exercism-öt böngészve olyan nyelveket találsz, amelyeket meg szeretnél tanulni, hozzá kell majd tudnod adni őket a listádhoz. Definiálj egy függvényt, amely egy új nyelvet a listád elejére szúr be.
(add-language '("Clojurescript") "JavaScript")
;; => '("JavaScript" "Clojurescript")
Szeretnéd gyorsan ellenőrizni, hogy melyik nyelvet adtad hozzá épp. Definiálj egy függvényt, amely a listád első nyelvét adja vissza.
(first-language '("Haskell" "Python"))
;; => "Haskell"
Néha meggondolod magad egy nyelvvel kapcsolatban, amelyet épp hozzáadtál. Definiálj egy függvényt, amely eltávolítja az első nyelvet a listádról.
(remove-language '("Common Lisp" "Racket" "Scheme"))
;; => '("Racket" "Scheme")
A nyelveket egyenként megszámolni kényelmetlen. Definiálj egy függvényt, amely megszámolja, hány nyelv van a listádon.
(count-languages '("C#" "Racket" "Rust" "Ruby"))
;; => 4
Definiálj egy learning-list függvényt, amelyben a fentebb definiált függvények némelyikét fogod használni.
Hozz létre egy üres listát
Adj hozzá 2 új programozási nyelvet a listához.
Távolítsd el a „Lisp” nyelvet a listáról, mert lehet, hogy nem lesz elég időd rá idén, és elég hasonló a Clojure-hoz.
Adj hozzá még 2 programozási nyelvet a listához.
Add vissza a nyelvek teljes számát. Tipp: 3-nak kell lennie.
(learning-list)
;; => 3
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Clojure nyelvet 12 fogalom105 feladat segítségével, valódi emberi mentorálással, mindez ingyen.