Не работи много добре с главни букви (encode "Hi" не трябва да връща "HoHi"), набутай някъде едно toLower :smiley: .
Мисля, че си поусложнил излишно encode - реално reverse-ваш два пъти един низ - първия път с getReverseString и след това с encodeLoop използваш акумулатор и обръщаш стринга, и еncode-ваш. Reverse (reverse str) пък e същото като str само, така че се пробвай да encode-ваш директно.
И decode може да се опрости малко. Сравнението с True в isConsonant first == True e излишно и вместо да проверяваш в guard-a за 'о', може да pattern match-ваш
decode (first : second : third : rest)
| isConsonant first == True
&& second == 'o'
&& toLower first == toLower third``` = ...
| оtherwise = ....
ще стане
decode(first:'o':third:rest)
| isConsonant first
&& toLower first == to Lower third = ...
другата клауза decode (x:rest) ще се погрижи за всичко останало.
Супер, само няколко неща:
Не работи много добре с главни букви (
encode "Hi"
не трябва да връща"HoHi")
, набутай някъде едноtoLower
:smiley: .Мисля, че си поусложнил излишно
encode
- реално reverse-ваш два пъти един низ - първия път сgetReverseString
и след това сencodeLoop
използваш акумулатор и обръщаш стринга, и еncode-ваш.Reverse (reverse str)
пък e същото катоstr
само, така че се пробвай да encode-ваш директно.И
decode
може да се опрости малко. Сравнението сTrue
вisConsonant first == True
e излишно и вместо да проверяваш в guard-a за'о'
, може да pattern match-вашще стане
другата клауза
decode (x:rest)
ще се погрижи за всичко останало.