18 lines
524 B
Plaintext
18 lines
524 B
Plaintext
: dip swap '_ set execute _ ; : nip swap drop ;
|
|
: first 0 extract nip ; : second 1 extract nip ;
|
|
|
|
: assoc-in swap keys eq ;
|
|
: assoc-index' over keys swap eq [1] index collapse ;
|
|
: at swap assoc-index' subscript collapse second ;
|
|
: delete-at swap assoc-index' first remove ;
|
|
: keys 1 transpose first ;
|
|
: set-at
|
|
over 'dup dip assoc-in '+ reduce if 'dup dip delete-at then
|
|
"swap 2 compress 1 compress" dip swap append ;
|
|
|
|
[['foo 5]]
|
|
10 'bar rot set-at
|
|
'bar over at .
|
|
'hello 'bar rot set-at
|
|
20 'baz rot set-at .
|