Add koans for partition function

This commit is contained in:
Ignacy Moryc 2012-08-04 12:11:33 +02:00 committed by Colin Jones
parent f1ee68affc
commit 626f97de8f
3 changed files with 26 additions and 2 deletions

View File

@ -15,7 +15,6 @@ Particular Functions
fnil - creating_a_function fnil - creating_a_function
juxt - creating_a_function juxt - creating_a_function
constantly - creating_a_function constantly - creating_a_function
partition
flatten flatten
frequencies frequencies

View File

@ -196,4 +196,11 @@
] ]
"___" [#(.toUpperCase %) "___" [#(.toUpperCase %)
] ]
}]] }]
["20_partition" {"__" [partition
[:a :b :c]
'((0 1 2) (3 4))
5
:hello
(6 :this :are)
]}]]

View File

@ -0,0 +1,18 @@
(meditations
"To split a collection you can use the partition function"
(= '((0 1) (2 3)) (__ 2 (range 4)))
"But watch out if there is not enough elements to form n sequences"
(= '(__) (partition 3 [:a :b :c :d :e]))
"You can use partition-all to also get partitions with less then n elements"
(= __ (partition-all 3 (range 5)))
"If you need to, you can start each sequence with an offset"
(= '((0 1 2) (5 6 7) (10 11 12)) (partition 3 __ (range 13)))
"Consider padding the last sequence with some default values.."
(= '((0 1 2) (3 4 5) (6 :hello)) (partition 3 3 [__] (range 7)))
".. but notice that they will only pad up to given sequence length"
(= '((0 1 2) (3 4 5) __) (partition 3 3 [:this :are "my" "words"] (range 7))))