这种所谓的折叠/扫描类概念是什么?

问题描述 投票:0回答:1

我们具有如下定义的StreamTransformer类型:

newtype StreamTransformer input output = StreamTransformer
  { runStreamTransformer :: input -> (output, StreamTransformer input output)
  }

以下看起来像扫描/折叠的功能非常有用

scan :: (a -> b -> b) -> b -> StreamTransformer a b
scan op init = StreamTransformer $ \i -> (init, scan op (i `op` init)) 

scan是否有名称?它可以表达/理解为某种形式的变形/变形吗?

haskell stream fold
1个回答
0
投票

在库机器中,StreamTransformer类型称为Mealy machine。值得注意的是,该概念起源于有限状态机的上下文,而这种有限性的概念在这种类型中就消失了。

data Mealy i o
  = Mealy (i -> (o, Mealy i o))
© www.soinside.com 2019 - 2024. All rights reserved.