begin
Hash := 0;
for i := 1 to length(aKey) do
Hash := ((Hash * 17) + ord(aKey[i])) mod aTablesize
Result : = Hash;
if (Result < 0) then
inc(Result, aTablesize)
end;[/code]

Xojo:

[code]Public Function SLSimpleHash(aKey as String, aTableSize as Integer) as Integer
Dim i As Integer
Dim Hash As Integer

Hash = 0
For I = 0 To Len(aKey)-1
Hash = ((Hash * 17) + Asc(Mid(aKey,I)) Mod aTablesize
Next

Return Hash

End Function[/code]

I get an error on the Hash = ((Hash * 17) + Asc(Mid(aKey,I)) Mod aTablesize

When I deep-nest one liners like that, I always use the add - subtract parenthesis count method, starting at zero and adding one for each open and subtracting one for each close, so your original code would have resulted in:

0 1 2 1 2 3 2 1

This identifies that I’m short one closing parenthesis.

[quote=430618:@Tim Jones]When I deep-nest one liners like that, I always use the add - subtract parenthesis count method, starting at zero and adding one for each open and subtracting one for each close, so your original code would have resulted in:

0 1 2 1 2 3 2 1

This identifies that I’m short one closing parenthesis.

Of course, I still need to figure out where :D.[/quote]
I follow a same pattern but sometimes you overlook things. Cheers.