- laske (3+4/5)*6
- kutsu funktiota get argumenteilla “ciao” ja 1
- määrittele vektori jossa on elementit 1, “moi” ja true
- määrittele vektori joka sisältää keywordit :diff ja :merge
- määrittele map jossa avain 1 liittyy arvoon “hei” ja avain :key arvoon [13 7]
- määrittele muuttuja my-map joka sisältää mapin {1 2}. Lisää my-mappiin assoc-funktiolla uusi avain ja arvo. Mitä assoc-funktio palauttaa? Mikä on my-map muuttujan arvo tämän jälkeen?
- käytä funktiota get hakemaan vektorin toinen alkio
- käytä funktiota get hakemaan mapista avain
- hae mapista avain käyttämällä itse mappia funktiona
- hae mapista avain käyttämällä keywordiä funktiona
- Käytä funktiota get-in noutamaan arvo :aarre arvosta {:kuvaus “luolasto” :risteys [{:sisalto :hirvio} nil {:sisalto [:hely :aarre]}]}
- tee funktio hello joka toimii näin: (hello) ==> “hello!”
- tee funktio tupla joka toimii näin (tupla 5) ==> 10, (tupla 1) ==> 2
…
- tee funktio small? joka palauttaa true luvuille alle 100
- tee funktio message! jolla on kolme eri tapausta: (message! :boink) ==> “Boink!” (message! :pig) ==> “oink” (message! :ping) ==> “pong”
- toteuta funktio message! uudelleen käyttäen if-rakennetta
- toteuta funktio message! uudelleen käyttäen cond-rakennetta
- toteuta funktio message! uudelleen käyttäen case-rakennetta
- kasvata vektorin [4 7 9 10] kaikkia lukuja yhdellä. Käytä map-funktiota. Vihje: funktio inc kasvattaa lukua yhdellä!
- tee sama kuin äsken, mutta jätä jäljelle vain parilliset luvut. Käytä funktioita filter ja even?
…
- käytä funktiota update-in kasvattamaan numeroa 3 yhdellä alla olevassa rakenteessa: {:shops [:shop-1] :customers [{:id “Pekka” :account {:saldo 3}}]}
…
- haastava: käytä reduce-funktiota yhdistämään vektori mappeja yhdeksi: (combine [{:a 1 :b 2} {:c 3} {:d 4 :e 5}]) ==> {:a 1 :b 2 :c 3 :d 4 :e 5}
- määrittele atomi my-atom joka sisältää arvon 4
- hae my-atomin nykyinen arvo operaattorilla @
- päivitä my-atomin sisältämä arvo arvoon 5 käyttämällä funktiota reset!
- hae my-atomin nykyinen arvo funktiolla deref
- päivitä my-atomin sisältämä arvo arvoon 6 käyttämällä funktiota swap!
- määrittele ref my-ref joka sisältää arvon 4
- lue my-refin arvo
- päivitä my-refin arvo arvoon 5 käyttämällä funktiota ref-set Huom: joudut käyttämään myös makroa dosync
- päivitä my-refin arvo arvoon 6 käyttämällä funktiota alter
vähän hankalampia