Сопоставление с образцами в секции where
Можно использовать привязки в секции where и для сопоставления с образцом. Перепишем секцию where в нашей функции так:
...
where bmi = weight / height 2
(skinny, normal, fat) = (18.5, 25.0, 30.0)
Давайте создадим ещё одну простую функцию, которая принимает два аргумента: имя и фамилию, и возвращает инициалы.
initials :: String –> String –> String
initials firstname lastname = [f] ++ ". " ++ [l] ++ "."
where (f:_) = firstname
(l:_) = lastname
Можно было бы выполнять сопоставление с образцом прямо в параметрах функции (это проще и понятнее), но мы хотим показать, что это допускается сделать и в определениях после ключевого слова where.