let rec findMinElMin lst =
// сравнить переданный список с шаблонами
match lst with
// если в нём 3 и более элемента
| e1 :: e2 :: e3 :: tail ->
// сравнить 2й элемент с первым и третьим, если он больше - возвратить успех и e2
if e2 > e1 && e2 > e3 then Some e2
// если нет - искать дальше
else findMinElMin (e2::e3::tail)
// если в списке меньше трёх элементов - вернуть пустой ответ
| _ -> None
Haskell - поиск первого элемента, большего соседей
Создайте код, который решает следующую задачу:
Ищет в списке первый элемент, больший своих соседей (предыдущего и следующего). Для того, чтобы сообщить о неудаче (в списке нет такого элемента), используйте тип Maybe.
Синтаксиса Хаскеля не помню, вот решение на F# (Some и None - это эквивалент Maybe), переписать на Хаскеле не составит труда (если учил его хоть чуть чуть):