2

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

  • известные случаи в момент вызова
  • Массив/список, который автоматически поддерживается в актуальном состоянии с самого события

конечно оба они, кажется, немного некрасиво - один нарушает смысловую чистоту и другой включает побочные эффекты.

Было бы лучше просто удалить функцию occs вне самой структуры FRP (т. Е. Сделать ее закрытой для Event и всего, что ее расширяет)? Пока Event имеет карту, фильтрует, объединяет и т. Д. Функции, которые возвращают дальнейшие события. Я чувствую, что это может быть потеряно без проблем. Или я что-то не понимаю?

+5

Пожалуйста, не уменьшайте и не объясняйте почему. Это действительно не помогает. – seadowg

ответ

2

Насколько я понимаю, функция occs, упомянутая в Conal's paper, не является частью API. Скорее, это спецификация модели программирования. Conal использует его для описания семантики различных комбинаторов, но это не то, что вы можете или должны реализовать.

+0

Я подумал, что это может быть так, но мне действительно хотелось проверить кого-то. Спасибо, Генрих! – seadowg

+0

Мое удовольствие. :) –

Смежные вопросы