elsys / fp-haskell

MIT License
6 stars 7 forks source link

Adding Secret-lang.hs homework #5

Closed tuechki closed 8 years ago

g-nakov commented 8 years ago

Супер, само няколко неща:

Не работи много добре с главни букви (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) ще се погрижи за всичко останало.