Я только начал изучать функциональное программирование, используя Haskel.
Я медленно читаю Лекции Эрика Мейера на 9-м канале (я уже посмотрел первые 4) и в 4-м видео Эрик объясняет, как работает tail, и это меня очаровало.
Я пытался написать функцию, которая возвращает середину списка (2 элемента для четной длины, 1 для нечетной), и я хотел бы услышать, как другие реализуют это в
- Наименьшее количество кода Haskell
- Самый быстрый код на Haskell
Если бы вы могли объяснить свой выбор, я был бы очень признателен.
Мой код для начинающих выглядит так:
middle as | length as > 2 = middle (drop 2 (reverse as))
| otherwise = as