Сопоставление с образцами в секции where

We use cookies. Read the Privacy and Cookie Policy

Можно использовать привязки в секции 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.