нужна функция, которая получает непустой список и возвращает
максимальный элемент в списке и части списка слева и справа от макс. эл-та
let rec splitmax seq =
match seq with
| [] -> [], 1.0e10, []
| t0::[] -> [], t0, []
| t0::sub ->
let left, t1, right = splitmax(sub) in
if t1 > t0
then (t0::left, t1, right)
else ([], t0, sub)
;;
такой вариант работатет;
но если убрать первую строку в match with возникает Matching exception
не понимаю почему -- пустой список в качестве аргумента никогда не
передаётся. в чём дело?
Ответ на:
комментарий
от yuriy123
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [школота-тред] синтаксис в Ocaml (2011)
- Форум OCaml module system problem (2006)
- Форум OCaml. Непонятки с модулями. (2006)
- Форум [F#] apply (2012)
- Форум Получить список из листьев дерева (scheme) (2006)
- Форум [python] Помогите оптимизировать маленькую прогу, пж. (2009)
- Форум F# проверка списка на оригинальность и т.п. без хэшей (2016)
- Форум [ocaml] ocaml <--> c (2008)
- Форум LORScriptPack - UserScript, делающий ЛОР удобным (2024)
- Форум Ocaml (2008)