Язык Haskell: О пользе и вреде лени: различия между версиями
Содержимое удалено Содержимое добавлено
WillNess (обсуждение | вклад) |
WillNess (обсуждение | вклад) →Задача разложения числа на степени двойки: убраны лишние скобки (если это дидактически неверно, то пожалуйста верните их обратно). |
||
Строка 240:
— первый способ:
<code>toPowers =
Функция <code>filter</code> получает на вход булеву функцию (функцию, возвращающую «правду» или «ложь») и список, а возвращает список только из тех элементов, на которых значение этой функции равно «правде». В данном случае мы оставляем только ненулевые элементы:
Строка 246:
<code>toPowers (16 + 8 + 1) <math>\Rightarrow</math> [1, 8, 16]</code>.
Функция <code>zipWith</code> получает три аргумента. Если указано только два аргумента, то она превращается в функцию от одного аргумента. Это позволяет использовать выражение <code>
функции <code>
Точки в определении функции <code>toPowers</code> играют роль операции «|» (pipe) в стандартной оболочке Linux. С помощью этой операции происходит передача результатов вычисления одной функции на вход другой. В нашем случае была выстроена цепочка из трёх функций.
|