metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-12-15 11:05 am

Хаскель и separation of concerns

fp, cмерть мерзкая от монад, хаскель, штанга, гроб, гроб, кладбище
http://juick.com/2165512

Можно ли на всем этом сделать так: https://gist.github.com/4292029
И чтобы goodProcessingFunction можно было нормально комбинировать из отдельных кусков, вплоть до того, что явно определить точки, где данные юзера становятся данными для девайса и наоборот.
Или например, обощить это, прикрутив еще и какой-нибудь tcp сервер.

Т.е. у нас есть несколько независимых IO каналов, каждый со своими форматами данных, на каждый канал прикрутить сменный парсер-сериализатор, чтобы в ядро бизнес-логики этот канал приходил уже в виде значений нормальных типов.
А потом еще захочется хранить в бизнес-логике состояние, подключаться к БД и все это, по-моему, нахрен умрет под грузом типов и слоев монад.

[identity profile] jakobz.livejournal.com 2012-12-15 08:56 am (UTC)(link)
Чувак, что yesod делает, носится с какими-то своими conduit-ами. Ну типа там делает чтобы оно было composable с одной стороны, было бы быстрым и нормально освобождало ресурсы с другой. Ты не про это?
http://www.yesodweb.com/blog/2012/06/conduit-0-5

[identity profile] nivanych.livejournal.com 2012-12-15 09:20 am (UTC)(link)
Тема Pipe'ов не раскрыта.
И вообще, всё это частные случаи всякоразно построенных категорий автоматов.

[identity profile] nicka-startcev.livejournal.com 2012-12-15 11:52 am (UTC)(link)
sysmac/syswin, dasylab, labview изобретаете?

[identity profile] thesz.livejournal.com 2012-12-15 01:54 pm (UTC)(link)
https://gist.github.com/4292029

Это можно сделать на каналах.

За исключением самого цикла - ибо он будет только читать из answerForUser и преобразовывать в EOF/Error i/Continue.

[identity profile] migmit.livejournal.com 2012-12-17 07:36 am (UTC)(link)
Если честно, товарищ Микоян - ничего не понял.