ClojureBridge - Helsinki 17/05/2015

30
ClojureBridge Helsinki 17.05.2015

Transcript of ClojureBridge - Helsinki 17/05/2015

Page 1: ClojureBridge - Helsinki 17/05/2015

ClojureBridge Helsinki17.05.2015

Page 2: ClojureBridge - Helsinki 17/05/2015

Tervetuloa

Page 3: ClojureBridge - Helsinki 17/05/2015

@SolitaOy @metosin

Page 4: ClojureBridge - Helsinki 17/05/2015

Agenda

Page 5: ClojureBridge - Helsinki 17/05/2015

10:00

13:00

15:00

17:00

Welcome Our goals First steps in programming Lunch Programming in real life More programming Break Even more programming We're done

Agenda

Page 6: ClojureBridge - Helsinki 17/05/2015

Our goals

Page 7: ClojureBridge - Helsinki 17/05/2015

(+ 3 4)(max 8 17 2)(eat "sandwich")

Page 8: ClojureBridge - Helsinki 17/05/2015

;; more food code(eat "cookie") ; nom nom nom(eat "donut") ; mmm donuts

Page 9: ClojureBridge - Helsinki 17/05/2015

(+ 1 1) ;=> 1 + 1 = 2(- 12 4) ;=> 12 - 4 = 8(* 13 2) ;=> 13 * 2 = 26(/ 27 9) ;=> 27 / 9 = 3

Page 10: ClojureBridge - Helsinki 17/05/2015

Infix:

Prefix:

1 + 2 * 3 / 4 + 5 - 6 * 7 / 8 + 9

(+ (- (+ (+ 1 (/ (* 2 3) 4)) 5) (/ (* 6 7) 8)) 9)

Page 11: ClojureBridge - Helsinki 17/05/2015

Infix:

Prefix:

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9

(+ 1 2 3 4 5 6 7 8 9)

Infix:

Prefix:

1 + 2 * 3 / 4 + 5 - 6 * 7 / 8 + 9

(+ (- (+ (+ 1 (/ (* 2 3) 4)) 5) (/ (* 6 7) 8)) 9)

Page 12: ClojureBridge - Helsinki 17/05/2015

Open terminal

Open LightTable

File -> Open folder -> clojurebridge

Page 13: ClojureBridge - Helsinki 17/05/2015

(+ 4/3 7/8) ;=> 53/24(- 9 4.2 1/2) ;=> 4.3(/ 27/2 1.5) ;=> 9.0

Page 14: ClojureBridge - Helsinki 17/05/2015

;; strings"Salut tout le monde""Prost!";; keywords:surname:birth-date:r2;; booleanstruefalse

Page 15: ClojureBridge - Helsinki 17/05/2015

(def mangoes 3)(def oranges 5)(+ mangoes oranges) ;=> 8

(def fruit (+ mangoes oranges))(def average-fruit-amount (/ fruit 2))average-fruit-amount ;=> 4

Page 16: ClojureBridge - Helsinki 17/05/2015

Excercise• Define a symbol with value of your height

in centimetres

• Define another symbol that holds your height in inches

• Ask height of your neighbours and calculate the average of all heights

One inch is 2.54 centimetres

Average: sum of values divided by number of values

Page 17: ClojureBridge - Helsinki 17/05/2015

Data-structures

Page 18: ClojureBridge - Helsinki 17/05/2015
Page 19: ClojureBridge - Helsinki 17/05/2015

["a" "b" "c" "d" "e" "f"]["a" "b" "c" "d" "e" "f"] [1 2 3 4]["Answer" 42][][[1 2 3] ["a" "b" "c"]]

Page 20: ClojureBridge - Helsinki 17/05/2015

(count [5 10 15]) ;=> 3(nth [5 10 15] 1) ;=> 10(first [5 10 15]) ;=> 5(rest [5 10 15]) ;=> (10 15)(conj [5 10] 15) ;=> [5 10 15]

Page 21: ClojureBridge - Helsinki 17/05/2015

Excercise

• Define a vector containing the temperatures of your home town for next 5 days

• Use nth function to check the temperature in Tuesday

For example: http://ilmatieteenlaitos.fi

Page 22: ClojureBridge - Helsinki 17/05/2015

Functions

Page 23: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price] (* price 0.75))

(reduced-price 120) ;=> 90(reduced-price 10) ;=> 7.5(reduced-price 0) ;=> 0.0

Page 24: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price] (* price 0.75))

(reduced-price 120) ;=> 90(reduced-price 10) ;=> 7.5(reduced-price 0) ;=> 0.0

(defn reduced-price [price reduce-by] (* price reduce-by))(reduced-price 120 0.75) ;=> 90.0(reduced-price 120 0.50) ;=> 60.0

Page 25: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price reduce-by] (* price reduce-by))(reduced-price 120 0.75) ;=> 90.0(reduced-price 120 0.50) ;=> 60.0

Page 26: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price reduce-pct] (* price (- 1.0 (/ reduce-pct 100.0))))(reduced-price 120 25) ;=> 90.0(reduced-price 120 50) ;=> 60.0

(defn reduced-price [price reduce-by] (* price reduce-by))(reduced-price 120 0.75) ;=> 90.0(reduced-price 120 0.50) ;=> 60.0

Page 27: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price reduce-pct] (* price (- 1.0 (/ reduce-pct 100.0))))(reduced-price 120 25) ;=> 90.0(reduced-price 120 50) ;=> 60.0

Page 28: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price reduce-pct] (let [one-percent (/ price 100.0) discount (* one-percent reduce-pct)] (- price discount)))

(defn reduced-price [price reduce-pct] (* price (- 1.0 (/ reduce-pct 100.0))))(reduced-price 120 25) ;=> 90.0(reduced-price 120 50) ;=> 60.0

Page 29: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price reduce-pct] (let [one-percent (/ price 100.0) discount (* one-percent reduce-pct)] (- price discount)))

Page 30: ClojureBridge - Helsinki 17/05/2015

(defn reduced-price [price reduce-pct] (let [one-percent (/ price 100.0) discount (* one-percent reduce-pct)] (- price discount)))

(defn major-sale [price] (reduced-price price 40))

(map major-sale [120.0 100.0 30.0]) ;=> (72.0 60.0 18.0)