行为是共谋的吗?

时间:2018-08-23 06:21:01

标签: haskell frp purescript category-theory

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

但是,他没有直接提及“行为”。所以..行为是Comonad吗?如果是的话-这实际上意味着什么?

对于初学者-我想行为可以提供extendextract函数。我看到工作的唯一方法是是否在特定时间对值进行采样。

Comonad对行为意味着什么吗?允许人们“分叉并冻结”行为吗?

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

1 个答案:

答案 0 :(得分:3)

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

对我而言,如何使时间成为单身生物并不明显。可能有几个Monoid实例,但有用吗?康纳在future values上的帖子建议Max是一个有用的Monoid,可以用来处理时间。

这表明extract @Behavior在最早的时间给出值,而duplicate @Behavior在两次的较晚时间给出值。我看到这两个都是有用的。也许还有其他有用的Monoid吗?