プログラミングHaskellをClojureで解く P.12
シーケンスのサイズってどうやって取得するんだろう??
Haskell Prelude> head [1,2,3,4,5] 1 Clojure user=> (first [1 2 3 4 5]) 1
Haskell Prelude> tail [1,2,3,4,5] [2,3,4,5] Clojure user=> (rest [1 2 3 4 5]) (2 3 4 5)
Haskell Prelude> [1,2,3,4,5]!!2 3 Clojure user=> (defn get_ [vec idx] (subvec vec idx (+ idx 1))) #'user/get_ user=> (get [1,2,3,4,5] 2) 3
Haskell Prelude> take 3 [1,2,3,4,5] [1,2,3] Clojure user=> (take 3 [1 2 3 4 5]) (1 2 3)
Haskell Prelude> drop 3 [1,2,3,4,5] [4,5] Clojure user=> (drop 3 [1,2,3,4,5]) (4 5)
Haskell Prelude> length [1,2,3,4,5] 5 Clojure 不明・・・
Haskell Prelude> sum [1,2,3,4,5] 15 Clojure 前のエントリでかいたfrom-toではイマイチ
Haskell Clojure product この1っこ前のエントリ
Haskell Prelude> [1,2,3] ++ [4,5] [1,2,3,4,5] Clojure user=> (concat [1 2 3] [4,5]) (1 2 3 4 5)
Haskell Prelude> reverse [1,2,3,4,5] [5,4,3,2,1] Clojure user=> (reverse [1 2 3 4 5]) (5 4 3 2 1)
Haskell Prelude> 1 `div` 0 *** Exception: divide by zero Prelude> head [] *** Exception: Prelude.head: empty list Clojure user=> (/ 1 0) java.lang.ArithmeticException: Divide by zero (NO_SOURCE_FILE:0) user=> (first []) nil