Skip to content

Take

Name - Description Default Type
<input> The sequence or table from which elements/key-values have to be extracted. Int2Int3Int4Int8Int16Float2Float3Float4BytesColorString[Any]{Any}
<output> The extracted elements/key-values. Any
Indices/Keys One or more indices/keys to extract from a sequence/table. None Int[Int]&Int&[Int]String[String]&String&[String]

Extracts one or more elements/key-values from a sequence or a table by using the provided sequence index/indices or table key(s). Operation is non-destructive; doesn't modify target sequence/table.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
;; Take on sequences
[10 20 30 40] (Take 1) (Log)
(Assert.Is 20 :Break true)
[10 20 30 40] (Take [1 2]) (Log)
(Assert.Is [20, 30] :Break true)

;; Take on tables
{"Hello" 10 "World" 20} (Take "Hello") (Log)
(Assert.Is 10 :Break true)
{"Hello" 10 "World" 20} (Take ["World" "Hello"]) (Log)
(Assert.Is [20, 10] :Break true)
{"Hello" 10 "World" 20} (Take "Universe") (Log)
(Assert.Is nil :Break true)
{:abc 10 :def 20} (Take "def") (Log)
(Assert.Is 20 :Break true)

;; Take using a variable as index
1 = .index
[1 2 3 4] (Take .index) (Log)
(Assert.Is 2 :Break true)
"Hello" = .key
{"Hello" 10 "World" 20} (Take .key) (Log)
(Assert.Is 10 :Break true)
[info] [shards/General/Take/1.edn] 20
[info] [shards/General/Take/1.edn] [20 30]
[info] [shards/General/Take/1.edn] 10
[info] [shards/General/Take/1.edn] [20 10]
[info] [shards/General/Take/1.edn] None
[info] [shards/General/Take/1.edn] 20
[info] [shards/General/Take/1.edn] 2
[info] [shards/General/Take/1.edn] 10