Associative array/Iteration: Difference between revisions

Content added Content deleted
Line 2,579: Line 2,579:
<lang Phixmonti>include ..\Utilitys.pmt
<lang Phixmonti>include ..\Utilitys.pmt


def getd /# dict key -- dict data #/
( ( ) ( ) ) var dictionary
swap 1 get rot find nip
dup if
swap 2 get rot get nip
else
drop "Unfound"
endif
enddef



def setd /# dict ( key data ) -- dict #/
def setd
1 get var ikey
1 get var ikey
2 get var idata
2 get var idata
drop
drop
dictionary 1 get ikey find var p drop
1 get ikey find var p drop
p if
p if
2 get idata p set 2 set
2 get idata p set 2 set
else
else
2 get idata 0 put 2 set
2 get idata 0 put 2 set
1 get ikey 0 put 1 set
1 get ikey 0 put 1 set
endif
endif
var dictionary
enddef
enddef


def getd /# key -- data #/
dictionary 1 get nip swap find nip
dup if
dictionary 2 get nip swap get nip
else
drop "Unfound"
endif
enddef


def pair /# n -- ( k d ) #/
def pair /# dict n -- dict ( k d ) #/
1 over 2 tolist var ikey
1 over 2 tolist var ikey
2 swap 2 tolist var idata
2 swap 2 tolist var idata
dictionary ikey sget
ikey sget
swap idata sget nip
swap idata sget rot swap
2 tolist
2 tolist
enddef
enddef


def scandict /# n -- #/
def scandict /# dict n -- dict ( ) #/
var n
dictionary 1 get len nip nip
1 get len nip
for
for
pair
pair
over 0 != if over get nip endif
n if n get nip endif
print nl
print nl
endfor
endfor
drop
enddef
enddef


def pairs
def pairs /# dict -- dict ( ) #/
0 scandict
0 scandict
enddef
enddef
Line 2,635: Line 2,634:


/# ---------- MAIN ---------- #/
/# ---------- MAIN ---------- #/

( ( ) ( ) )


( "one" 1 ) setd
( "one" 1 ) setd
Line 2,642: Line 2,643:
pairs nl
pairs nl
keys nl
keys nl
values</lang>
values
</lang>


=={{header|PHP}}==
=={{header|PHP}}==