Witam, prosiłbym o pomoc z częścią zadania z którym męcze się już drugi dzień i za nic nie mogę ominąć problemu. Zadanie do napisania w języku programowania funkcyjnego w Moscow Ml.
Mam za zadanie napisanie funkcji "rymy" w postaci string*string -> bool. Funkcja ta ma zwracać wartość True jeżeli słowo kończy się na te same 3 litery. Jeżeli słowa nie są podobne, ma zwracać wartość False. Również gdy podane slowo jest krótsze niż 3 litery, ma zwracać false.
przykład działania:
- rymy("google", "gugle");
> val it = true : bool
- rymy("niebo", "drzewo");
> val it = false : bool
Póki co napisałem:
fun last(s) =
let val n=3
in
String.substring(s, size s-n, n)
end;
fun rymy(o1, o2) =
if o1 > o2 then false else if o1 <= 2 then false else if o2 <= 2 then false else if o2 > o1 then false else if
o1=o2 then true else false;
Obie funkcje działają, jedyny problem, że nie chce "czytać" funkcji "rymy" jako string, lecz jako liczby(int).
1 funkcja wycina słowa bez problemu i zwraca:
- last("google");
> val it = "gle" : string
Byłbym wdzięczny za każdą pomoc :)
Pozdrawiam