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