行为是一个Comonad?

dav*_*mer 5 haskell frp category-theory purescript

Conal Elliott在这里谈论Streams和Comonads:http://conal.net/blog/posts/sequences-streams-and-segments

但是,他没有直接提到行为.所以......是行为的共同体,如果是这样的话 - 这实际意味着什么呢?

对于初学者 - 我认为行为可以提供extendextract功能.我看到它工作的唯一方法是它是否在特定时刻对值进行采样.

这是Comonad对行为意味着什么?它允许一个人"分叉并冻结"一个行为?

换句话说 - 如果我们有一个行为随着时间的推移具有这些值:A,B,C,D,...我们可以extend在它的时间B,并获得一个B无限期包含的新行为(这是有用的 - 因为我们可以当时liftmap它等)

ber*_*gey 3

Behavior a同构于(Time -> a). Conal 在“添加连续性”帖子部分中给出的定义与comonad 包中的定义相匹配。

对我来说,如何使时间成为幺半群并不明显。多个 Monoid 实例是可能的,但是有用吗?Conal 关于未来值的帖子表明,Max对于处理时间来说, 是一个有用的幺半群。

计算结果是extract @Behavior在最早可能的时间给出值,并duplicate @Behavior在两个时间中较晚的时间给出值。我可以看到这两者都很有用。也许还有其他有用的幺半群?