Question: vigenere cryptanalisis with maple

hi, i have a problem with maple. i took the codes from a book, it should be true but even i copied and past exactly the same, again the maple gave me error which i couldnt solve. could you please help me? how can i correct it ? incorrect codes are below, but if you need all codes i can write here. i need a solution immediately :(

>relativefrequencies := proc(text, language)
evalf(frequencies(text, language)/StringTools:-Length(text))
end proc:
VigenereKeyFind := proc(ciphertext, max:=floor(StringTools:-Length(ciphertext)/15),
{language:=en})
uses StringTools;
local freqs;
freqs := map(x -> relativefrequencies(x, language),
map(Implode, partit(Explode(ciphertext),
keylength(ciphertext, max, ’:-language’=language))));
Implode(map(li -> frequencyanalysis(li, ’:-language’=language), freqs))
end proc;

>VigenereKeyFind(c);
Error, (in VigenereKeyFind) ``’`` does not evaluate to a module

Please Wait...