46 lines
680 B
Text
46 lines
680 B
Text
include ..\Utilitys.pmt
|
|
|
|
def scand /# dict key -- dict n #/
|
|
0 var flag
|
|
var ikey
|
|
len for
|
|
var i
|
|
i 1 2 tolist sget
|
|
ikey == if i var flag exitfor endif
|
|
endfor
|
|
flag
|
|
enddef
|
|
|
|
|
|
def getd /# dict key -- dict data #/
|
|
scand
|
|
dup if get 2 get nip else drop "Unfound" endif
|
|
enddef
|
|
|
|
|
|
def setd /# dict ( key data ) -- dict #/
|
|
1 get rot swap
|
|
scand
|
|
rot swap
|
|
dup if set else put endif
|
|
enddef
|
|
|
|
/# ---------- MAIN ---------- #/
|
|
|
|
( ( "name" "Rocket Skates" )
|
|
( "price" 12.75 )
|
|
( "color" "yellow" ) )
|
|
|
|
dup
|
|
|
|
( ( "price" 15.25 )
|
|
( "color" "red" )
|
|
( "year" 1974 ) )
|
|
|
|
len for
|
|
get rot swap setd swap
|
|
endfor
|
|
|
|
swap
|
|
|
|
pstack
|