Я начинаю работу с Netwire версии 5.
У меня нет проблем с написанием всех проводов, которые я хочу преобразовать в свои входы в свои выходы.
Теперь пришло время написать оболочку ввода-вывода, чтобы связать мои входные данные из реального мира, и я немного запутался.
Должен ли я создать собственный тип сеанса для параметра s
параметра Wire s e m a b
и внедрить туда значения своих датчиков?
Если да, то у меня такие вопросы:
- Что случилось с
Monoid s
контекстомclass (Monoid s, Real t) => HasTime t s | s -> t
? Для чего его используют? - Я думал прикрутить
Map String Double
к своим показаниям сенсора, но как мой моноид должен хрустить словарями? Должен ли он быть левым? Правостороннее? Ни один из вышеперечисленных?
Если нет, то что мне делать? Я хочу получить провода вида Wire s InhibitionReason Identity () Double
для некоторого s
, представляющего мой ввод.
Насколько я понимаю, я не хочу и не должен использовать монадический параметр m
для Wire
для этой цели, позволяя самим проводам быть чистыми и ограничивая ввод-вывод кодом, который проходит через провода верхнего уровня. Это неправильно?
runReader
(илиrunReaderT
, если хотите добавить еще больше вещей). - person Cubic   schedule 05.04.2014mkGen_
сgetKey
в нем. Мне было бы интересно обобщить вопрос: каковы преимущества и недостатки разрешения операций ввода-вывода внутри проводов по сравнению с подачей всех данных ввода-вывода в качестве входных данных для самого внешнего провода? - person crosser   schedule 17.11.2014