При чтении и реализации FRP меня смущает семантика функции occs
в Event (упоминается в статьях Конала Эллиотта).Это очень просто при работе со статическими (чистыми) событиями, но я не понимаю, как это работает с динамическими событиями (такими как нажатия кнопок мыши и т. Д.).Например, если occs
возвращает все вхождения события, то, насколько я вижу, результат для occs
для динамического события может быть одной из следующих вещей (поскольку еще не все вхождения известны):
- Известные вхождения во время вызова
- Массив / список, который автоматически обновляется вместе с самим Событием
Конечно, обаиз них кажется немного уродливым - один нарушает семантическую чистоту, а другой вызывает побочные эффекты.
Было бы лучше просто удалить функцию occs
вне самой структуры FRP (т.е. сделать ее частной по отношению к Event и всему, что ее расширяет)?Пока в Event есть функции map, filter, merge и т. Д., Которые возвращают другие события, я чувствую, что они могут быть потеряны без проблем.Или я что-то недопонимаю?