Главная » Haskell » Приёмы программирования

0

Язык  Haskell, как и любой иной высокоразвитый язык  программирования,  имеет уже устоявшиеся приёмы, которые позволяют писать программное обеспечение более быстро и эффективно. Такие приёмы часто называются «идиомами». Конечно, все они обычно постигаются на практике путём долгого самостоятельного обучения на своём опыте или опыте коллег. А потому этот раздел поможет читателю не тратить времени на самостоятельный поиск и постижение того, что уже давным-давно сделано.

1.4.1.    Двумерный синтаксис

Определения функций, содержащие в себе такие ключевые слова, как case, let, where и do, используют так называемый двумерный синтаксис в случаях, когда после этих служебных слов идёт несколько выражений. Этот двумерный синтаксис позволяет структурировать исходный код, а также не перегружать его лишними символами, необходимыми для разделения выражений. На самом деле правильная запись выражений,  находящихся после перечисленных служебных слов, подразумевает заключение их в фигурные скобки — {}, а также разделение выражений символом (;), как это принято в большинстве языков программирования. Так, к примеру, постфиксные локальные определения можно записывать следующим образом:

abcValue  a b c  = x  * y  / z  where {x = a + b; y  = b +  c;  z  = c  + a}

Однако создатели языка Haskell решили в дополнение к такой  записи разрешить программисту использовать двумерный синтаксис для записи подобных определений следующим образом:

abcValue  a b c  = x  * y  / z where

x  =  a  +  b y  =  b  +  c z  =  c  +  a

Смысл использования двумерного синтаксиса состоит в следующем. Каждое выражение, следующее после ключевого слова where (или  другого ключевого слова, поддерживающего двумерный синтаксис),  должно находиться на новой строке  и при этом начинаться с одного и  того же  знакоместа в самой строке, то есть все выражения должны находиться как бы в столбик друг под другом, начинаясь на одной и той же позиции.

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии