# $Id: hash.pliant,v 1.0 2002/02/07 14:45:00 dada Exp $ # http://dada.perl.it/shootout/ module "/pliant/language/context.pli" gvar (Index Str Int) hash1 gvar (Dictionary Str Int) hash2 gvar Str k gvar Int i gvar Pointer:Int v gvar Str s_n := cast ((pliant_script_args translate Address 1) map CStr) Str if (s_n parse (gvar Int n)) for (i) 0 9999 hash1 insert "foo_"+(string i) i for (i) 1 n v :> hash1 first k := hash1 key v if addressof:(hash2 first k)<>null hash2:k += hash1:k else hash2 insert k hash1:k while addressof:v<>null if addressof:(hash2 first k)<>null hash2:k += hash1:k else hash2 insert k hash1:k v :> hash1 next v if addressof:v<>null k := hash1 key v console hash1:"foo_1" " " hash1:"foo_9999" " " hash2:"foo_1" " " hash2:"foo_9999" eol else console "usage: hash2.pliant <number>" eol