例如:
事件1:在屏幕上显示N帧文本并播放声音效果
事件2:清除屏幕上的文本
我的解决方案(也许有更好的)是拥有一个包含事件的函数列表。事件执行它们的行为,然后返回下一个要发生的事件。我考虑使用List.map或List.collect,因为我实际上是将一个事件列表映射到一个新的事件列表,同时执行一些行为代码。
在上面的示例中,事件1可以由两个函数组成:一个显示文本,一个播放声音(因此需要一个列表)。显示文本的函数将返回自己的副本,以便在N-1帧中重复显示文本,然后返回清除文本的Event2。播放声音的函数将返回相当于no-op的内容。
如果这是一个好的解决方案,我可能可以在C++或C#中实现它。我的目标是在F#中实现等效或更好的解决方案。