Show Menu
Cheatography

Clojure för nybörjare Cheat Sheet by

Variabler och strängar

(println "Hej världe­n!")
;; Skriv ut "Hej världe­n!"
(def meddelande "Hej världen!")
(println meddel­ande)
;; Definiera variabel
;; Skriv ut värdet

Matema­tiska operatorer

Addition
(+ 5 3)
8
Subtra­ktion
(- 5 3)
2
Multip­lik­ation
(* 5 3)
15
Division
(/ 5 3)
5/3
 
(/ 5.0 3.0)
1.6666­666­666­666667
Modulo
(mod 5 3)
2

Jämförelse

lika med
(= x 42)
inte lika med
(not= x 42)
större än
(> x 42)
större än eller lika med
(>= x 42)
mindre än
(< x 42)
mindre än eller lika med
(<= x 42)

If-satser

(if (>= ålder 18)
    ("Du får rösta")
    ("Du får inte rösta"))
;; Om villkoret stämmer
;; kör första funktionen.
;; Annars kör andra.
 

Listor

(def vänner
[ "­Jon­as" "­Sim­on" "­Joh­an" ])
;; Definiera lista med strängar
(first vänner)
;; Hämta första element i listan
(last vänner)
;; Hämta sista element i listan
(nth vänner n)
;; Hämta n:te elementet
(rest vänner)
;; Alla element utom första
(pop vänner)
;; Alla element utom sista
(empty? vänner)
;; Kollar ifall listan är tom
(count vänner)
;; Listans längd
Obs! Strängar kan ses som lista av karaktärer:
(empty? "Jonas")
(count "­Jon­as")


;; Är strängen tom?
;; Hur lång är strängen?
(assoc vänner 0 "­Cal­le")
;; Returnerar ["Ca­lle­" "­Sim­on" "­Joh­an"]
(def matris [["a­"] ["b"] ["c"]])
(assoc-in matris [1 0] "­x")
;; 2-dime­nsi­onell lista
;; Returnerar [["a­"] ["x"] ["c"]]

Funktioner

(defn hälsa-­uta­n-namn []
    "Hej hej!")
;; Definiera funktion utan parameter
(hälsa­-ut­an-­namn)
;; Anropa funktion utan parameter
(defn hälsa-­med­-namn [ namn ]
     (str "­Hej­" namn "­!"))
;; Definiera funktion med parameter
(hälsa­-me­d-namn "­Fil­ip")
;; Anropa funktion med parameter

Rekursion

(defn foo []
    (foo))
;; Oändlig rekursion
(defn foo [ tal ]
    (if (> tal 0)
 ­ ­ ­ ­ ­ ­ ­ (foo (- tal 1))
 ­ ­ ­ ­ ­ ­ ­ ­(pr­intln "stop")))
;; Ha med basfall i rekursiva funktioner
;; Basfallet avgör om:
;; rekurs­ionen fortsätter
;; rekurs­ionen avbryts

Felsök­nin­gstips

1. Stava rätt
variab­elnamn kan lätt bli variba­elnanm
2. Kolla parenteser
Se till att varje ( matchas med en )
Eller [ med ]
3. Stängda strängar?
"­Detta kommer inte funka.
 
Ej heller det här."
4. Kontro­llera att funktionen anropas!
(foo)
5. Kontro­llera antal parametrar
(foo [a b] ;<- Tar 2 parametrar
     (println a )
     (println b ))

(foo "en parame­ter­" ) ;<- Fel antal
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          My Emacs Keyboard Shortcuts
          Cursive on Mac OS X Keyboard Shortcuts