aboutsummaryrefslogtreecommitdiffstats
path: root/yql/essentials/tests/s-expressions/suites/Builtins/Condense.yql
blob: d601958e3e444236d894df9b204a2b4818c1feca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(
#comment
(let mr_source (DataSource 'yt 'plato))
(let x (Read! world mr_source (Key '('table (String 'Input))) '('key 'subkey 'value) '()))
(let world (Left! x))
(let table1 (Right! x))
(let table1map (Map table1 (lambda '(item) (block '(
   (let value (Member item 'value))
   (let newValue (AsList value))
   (let newValue (Prepend (String 'prepended) newValue))
   (let newValue (Append newValue (String 'appended)))
   (let state (Uint32 '0))
   (let state (Condense (Iterator newValue) state (lambda '(item state) (Bool 'False)) (lambda '(item state) (+ state (Size item)))))
   (let s (Struct))
   (let s (AddMember s 'key (Member item 'key)))
   (let s (AddMember s 'subkey (String  '.)))
   (let s (AddMember s 'value (Concat (Concat value (String '" ==> ")) 
    (ToString (Coalesce (ToOptional (Collect state)) (Uint32 '0))))))
   (return s)
)))))
(let mr_sink (DataSink 'yt (quote plato)))
(let world (Write! world mr_sink (Key '('table (String 'Output))) table1map '('('mode 'append))))
(let world (Commit! world mr_sink))
(return world)
)