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