Skip to content

Commit

Permalink
Некоторые опечатки в Главе 16, ошибка в рисунке
Browse files Browse the repository at this point in the history
В схематическом стрелочном рисунке для fold ошибке: над самой левой стрелкой должен быть не f, а unFix
  • Loading branch information
bach741974 committed Jun 19, 2013
1 parent 02b42bd commit 4ba9a2c
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions pandoc/16.txt
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,8 @@ Ok, modules loaded: Fix.
~~~

Спрашивается, зачем нам это нужно? Зачем нам записывать
рекурсивные типы через тип `Fix`? Оказывается при такой
записи мы можем построить универсальные функции `fold` и `unfold`,
рекурсивные типы через тип `Fix`? Оказывается, при такой
записи мы можем построить универсальные функции `fold` и `unfold` -
они будут работать для любого рекурсивного типа.

Помните, как мы составляли функции свёртки? Мы строили
Expand Down Expand Up @@ -210,7 +210,7 @@ foldr :: (a -> b -> b) -> b -> ([a] -> b)
fold :: (f b -> b) -> (Fix f -> b)
~~~

Смотрите функция свёртки по-прежнему принимает методы
Смотрите, функция свёртки по-прежнему принимает методы
воображаемого класса с параметром, но теперь класс перестал
быть воображаемым, он стал типом с параметром. Результатом
функции свёртки будет функция из рекурсивного типа `Fix f`
Expand All @@ -228,8 +228,8 @@ unfold :: (b -> f b) -> (b -> Fix f)
последовательность применений этого одного шага.

Теперь давайте определим эти функции. Но для этого
нам понадобится от типа `f` одно свойство. Он должен быть
функтором, опираясь на это свойство, мы будем рекурсивно
нам понадобится от типа `f` одно свойство - он должен быть
функтором. Опираясь на это свойство, мы будем рекурсивно
обходить этот тип.

~~~
Expand Down Expand Up @@ -263,10 +263,10 @@ unfold f = Fix . fmap (unfold f) . f

<#tikz_ unfold>

Возможно вы уже догадались о том, что функция `fold`
дуальна по отношению к функции `unfold`, это особенно
наглядно отражается на схеме композиции. При переходе от
`fold` к `unfold` мы просто перевернули все стрелки
Возможно, вы уже догадались о том, что функция `fold`
дуальна по отношению к функции `unfold`. Это особенно
наглядно отражается на схеме композиции: при переходе от
`fold` к `unfold` мы просто перевернули все стрелки и
заменили разворачивание типа `Fix` на заворачивание
в `Fix`.

Expand Down

0 comments on commit 4ba9a2c

Please sign in to comment.