(Untitled)

May 20, 2012 20:03

Утром оторвался от ssh с ec2 амазоновским. Очень круто надо сказать. На борту ubuntu, воткнул links. Одно удовольствие. Может вечером или с утра разверну play, со скальным модулем, конечно.

Ладно, оторвался с недовольным мордером, ну а как, в глазах тоска в груди томление. Погода сегодня чудная - почти 20, значит можно одеть шорты и оголиться по ( Read more... )

настроение, нравится

Leave a comment

Comments 3

ex_juan_gan May 20 2012, 15:18:30 UTC
Статейка читабельная, но какая-то странная. Я её уже который раз читаю, всё как новая.

Reply

sassa_nf May 20 2012, 17:30:39 UTC
А ещё, не заслуженно все начинают со сравнения с монадами. Нужно бы как раз побольше примеров типа zap, которые через монаду=fmap+u+m выразить гораздо напряжнее.

Вот взять сложение матриц. Поскольку fmap получает одну функцию и один аргумент, то две матрицы не передать. Значит, сначала зипуем. Но это же мы всего-лишь со строками разобрались, а ведь ещё внутри нужно из пары строк сделать сумму по элементам. Значит, снова зипуем, и функцию сложения a->a->a меняем на функцию (a,a)->a. Ну и вообще, если есть zip, т.е. T[A]xT[B]->T[AxB], то уже и ap вида zap есть. А вот без zip эта задача вообще решается?

Другими словами, (A->B)->(T[T[A]]->T[T[B]]) ещё можно сделать, а как насчёт ((AxB)->C)->(T[T[A]]xT[T[B]]->T[T[C]])?

Reply

sassa_nf May 20 2012, 20:23:40 UTC
"Другими словами, (A->B)->(T[T[A]]->T[T[B]]) ещё можно сделать, а как насчёт ((AxB)->C)->(T[T[A]]xT[T[B]]->T[T[C]])?"

это, конечно, я имею в виду "ещё можно сделать через fmap", а вот ((AxB)->C)->(T[T[A]]xT[T[B]]->T[T[C]]) - здесь сила нужна. И именно в этом случае лучше всего подходит функториальная сила. Конечно, её можно выразить через тензорную силу, но какими усилиями! А zip - вот она, функториальная сила, уже готовёхонькая.

Reply


Leave a comment

Up