/* Associate array/Interation (Rosetta code) in Picat. http://rosettacode.org/wiki/Associative_array/Iteration """ Show how to iterate over the key-value pairs of an associative array, and print each pair out. Also show how to iterate just over the keys, or the values, if there is a separate way to do that in your language. """ This program was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ % import v3_utils. % import util. % import cp. main => go. go => Map = new_map([1=one,2=two,3=three,4=four]), foreach(K=V in Map) println(K=V) end, nl, println(keys=Map.keys), foreach(K in Map.keys.sort) println(K=Map.get(K)) end, nl, println(values=Map.values), foreach(V in Map.values.sort) % This works but gets a warning: nonlocal_var_in_iterator_pattern % println(V=[K : K=V in Map]) % No warning: println(V=[K : K=V1 in Map,V1 == V]) end, nl, nl.