Skip to content

Instantly share code, notes, and snippets.

@okram
Created March 19, 2020 10:46
Show Gist options
  • Save okram/d4213d583751c3df5b358ab3c2e770ce to your computer and use it in GitHub Desktop.
Save okram/d4213d583751c3df5b358ab3c2e770ce to your computer and use it in GitHub Desktop.
mmlang> obj[=mmkv,'data/mmkv.mm'][is.v.name=='poop'][is.k>100 -> .v.age | is.k>11 -> .v.age+34 | obj -> .v.age][plus,100][fold,'seed',0,int[plus<seed>]][explain]
==>str<=[start,'
int{*}<=obj[=mmkv,'data/mmkv.mm'][is,bool{*}<=mmkv{*}[get,'v'][get,'name'][eq,'poop']][choose,[mmkv{*}[is,bool{*}<=mmkv{*}[get,'k'][gt,100]]:int{*}<=mmkv{*}[get,'v'][get,'age']|mmkv{*}[is,bool{*}<=mmkv{*}[get,'k'][gt,11]]:int{*}<=mmkv{*}[get,'v'][get,'age'][plus,34]|obj['k':int,'v':rec['name':str,'age':int]]{*}:int{*}<=mmkv{*}[get,'v'][get,'age']]][plus,100][fold,'seed',0,int[plus,int<seed>]]
instruction domain range state
-------------------------------------------------------------------------------------------------------------------------------------------------------------
[=mmkv,'data/mmkv.mm'] obj => mmkv['k':int,'v':rec['name':str,'age':int]]{*}
[is,bool{*}<=mmkv{*}[get,'v'][get,'name'... mmkv['k':int,'v':rec['name':str,'age':int]]{*} => mmkv['k':int,'v':rec['name':str,'age':int]]{*}
[get,'v'] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => rec['name':str,'age':int]{*}
[get,'name'] rec['name':str,'age':int]{*} => str{*}
[eq,'poop'] str{*} => bool{*}
[choose,[mmkv{*}[is,bool{*}<=mmkv{*}[get... mmkv['k':int,'v':rec['name':str,'age':int]]{*} => int{*}
[is,bool{*}<=mmkv{*}[get,'k'][gt,100]] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => mmkv['k':int,'v':rec['name':str,'age':int]]{*}
[get,'k'] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => int{*}
[gt,100] int{*} => bool{*}
[get,'v'] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => rec['name':str,'age':int]{*}
[get,'age'] rec['name':str,'age':int]{*} => int{*}
[is,bool{*}<=mmkv{*}[get,'k'][gt,11]] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => mmkv['k':int,'v':rec['name':str,'age':int]]{*}
[get,'k'] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => int{*}
[gt,11] int{*} => bool{*}
[get,'v'] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => rec['name':str,'age':int]{*}
[get,'age'] rec['name':str,'age':int]{*} => int{*}
[plus,34] int{*} => int{*}
[get,'v'] mmkv['k':int,'v':rec['name':str,'age':int]]{*} => rec['name':str,'age':int]{*}
[get,'age'] rec['name':str,'age':int]{*} => int{*}
[plus,100] int{*} => int{*}
[plus,int<seed>] int => int int{*}<seed>
']
mmlang>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment