Всем здраво! У меня тут в универе начали СМЛ прходить как ввод в Функциональное программирование. Никак не могу разобраться с этим языком. Надеюсь на вашу помощь, если вообще кто-то разбираеться в этом...
На Паскале или Си я бы код с закрытыми глазами написал, но тут не все так просто...
Вот 3 очень простые задачки:
1) Построить функцию removeDupl типа string которая уберет все подряд повторяющиеся элементы заданной строки и оставит только одну из них.
подпись функции: val removeDupl = fn : string -> string
пример:
-removeDupl("aabbacccddd");
val it = "abacd" : string
2) Построить функцию triangle типа int list list которая по заданному N выдаст список списков по которым можно построить треугольник высоты N.
подпись функции: val triangle = fn : int -> int list list
пример:
-triangle(4);
val it = [[1],[1,1],[1,1,1],[1,1,1,1]]
3) Построить функцию getNlargest типа int list которая по заданному N и списку чисел выдаст самые большие N чисел из заданного списка чисел.
подпись функции: val getNlargest = fn : int -> int list -> int list
пример:
- getNLargest 7 [1,2,4,3,4,10,2,3,4,32,6,6,4,7];
val it = [32,10,7,6,6,4,4] : int list
вот и все. у кого какие идеи? я думаю что во всех задачах такого типа в СМЛ без рекурсии никак.
Спасибо заранее...
задачки по СМЛ, функциональное программирование |