33 lines
540 B
Text
33 lines
540 B
Text
hashJoin: function [t1, t2][
|
|
result: []
|
|
h: #[]
|
|
loop t1 's [
|
|
if not? key? h s\1 -> h\[s\1]: []
|
|
h\[s\1]: h\[s\1] ++ @[s]
|
|
]
|
|
loop t2 'r [
|
|
loop h\[r\0] 's [
|
|
'result ++ @[@[s r]]
|
|
]
|
|
]
|
|
return result
|
|
]
|
|
|
|
table1: [
|
|
[27 "Jonah"]
|
|
[18 "Alan"]
|
|
[28 "Glory"]
|
|
[18 "Popeye"]
|
|
[28 "Alan"]
|
|
]
|
|
|
|
table2: [
|
|
["Jonah" "Whales"]
|
|
["Jonah" "Spiders"]
|
|
["Alan" "Ghosts"]
|
|
["Alan" "Zombies"]
|
|
["Glory" "Buffy"]
|
|
]
|
|
|
|
loop hashJoin table1 table2 'row ->
|
|
print row
|