metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-11-28 07:16 pm
Entry tags:

Обработка элемента множества в контексте "соседей"

Вот тут http://levgem.livejournal.com/420910.html задают вопрос, который меня тоже сильно интересует - есть ли такая высокоуровневая операция, которая бы позволила абстрагировать обработку элемента (упорядоченного) множества в контексте взаимодействия этого элемента с его соседями.
Вроде [livejournal.com profile] antilamer что-то похожее писал про комонады, но мне без конкретной задачи сложно осознать, как это использовать.
Вот например map, filter, fold - я их понял от входа, потому что очевидная аналогия с SQL запросами - select, where, group by (и прочие агрегаты).
У обработки в контексте понятная мне аналогия - это, например, window functions в SQL, скользящее среднее, интеграторы-дифференциаторы и прочие фильтры-свертки в DSP, но вот их я внятным образом с функциональщиной сопоставить не могу.

PS: клеточные автоматы и комонады: http://blog.sigfpe.com/2006/12/evaluating-cellular-automata-is.html Клеточный автомат тоже подвид фильтра поверх скользящего окна.
И функции поверх потоков: http://blog.sigfpe.com/2006/06/monads-kleisli-arrows-comonads-and.html

[identity profile] palm-mute.livejournal.com 2012-11-28 04:56 pm (UTC)(link)
интернеты утверждают, что для скользящих окон полезны зигоморфизмы :)
http://www.iis.sinica.edu.tw/~scm/2010/functional-pearl-maximally-dense-segments/

[identity profile] nivanych.livejournal.com 2012-11-29 07:34 am (UTC)(link)
По большому счёту, эти все типы рекурсии не нужны, это лишние сучщности.
Упрощают они очень немного, а запоминать всё такое мне лично неохота.
Я уж и названия их всех позабыл, кроме ката-ана-морфизмов.