(* zadatak pod a *) fun razlika(k1,k2) = if(ord(k1)-ord(k2))>=0 then ord(k1)-ord(k2) else ord(k2)-ord(k1); fun suma(nil,c) = 0 | suma(h::t,c) = razlika(h,c)+suma(t,c); fun f1(s,c) = suma(explode s,c); (* zadatak pod b - napravicemo najprije int listu sa vrijednostima f1 za svaki karakter iz stringa, sortirati je t.d. na prvom mjestu bude najveci element *) fun lista(nil,kopija) = nil | lista(h::t,kopija) = [f1(kopija,h)]@lista(t,kopija); fun ubaci(x,nil) = [x] | ubaci(x,h::t) = if x>h then x::h::t else h::ubaci(x,t); fun sort nil = nil | sort(h::t) = ubaci(h, sort t); fun najveci l = hd(sort(lista(explode l,l))); fun trazeni (h::t,kopija) = if(f1(kopija,h)=najveci(kopija)) then h else trazeni(t,kopija); fun f2 s = trazeni(explode s,s);