30 lines
774 B
Text
30 lines
774 B
Text
V inv_code = [
|
||
‘1’ = [‘B’, ‘F’, ‘P’, ‘V’],
|
||
‘2’ = [‘C’, ‘G’, ‘J’, ‘K’, ‘Q’, ‘S’, ‘X’, ‘Z’],
|
||
‘3’ = [‘D’, ‘T’],
|
||
‘4’ = [‘L’],
|
||
‘5’ = [‘M’, ‘N’],
|
||
‘6’ = [‘R’]
|
||
]
|
||
|
||
[Char = Char] _code
|
||
L(k, arr) inv_code
|
||
L(el) arr
|
||
_code[el] = k
|
||
|
||
F soundex(s)
|
||
V code = String(s[0].uppercase())
|
||
V previous = :_code.get(s[0].uppercase(), Char("\0"))
|
||
|
||
L(c) s[1..]
|
||
V current = :_code.get(c.uppercase(), Char("\0"))
|
||
I current != "\0" & current != previous
|
||
code ‘’= current
|
||
previous = current
|
||
|
||
R (code‘0000’)[0.<4]
|
||
|
||
print(soundex(‘Soundex’))
|
||
print(soundex(‘Example’))
|
||
print(soundex(‘Sownteks’))
|
||
print(soundex(‘Ekzampul’))
|