如何在FP中继续听?

时间:2017-11-10 10:52:49

标签: scala haskell

我想使用Kafka在微服务之间发送消息。

Kafka使用发布订阅机制,这意味着,生产者生成消息,kafka接收消息并订阅消费者。消费者总是会收听传入消息的事件并做出相应的反应。

我的问题是,如何使用函数式编程语言(scala,haskell)构建一个用于监听传入事件的系统?

它就像一个http服务器,正在侦听传入的请求。

我认为,由于副作用,它需要一个IO Monad,即将发生。 以及如何让它始终运行?看起来简单吗?

1 个答案:

答案 0 :(得分:0)

我不知道Scala,但在Haskell中答案是,就像你在命令式语言中那样,但是在IO monad中。

可能有像功能反应式编程这样的系统可以让你以功能的方式编写监听器,但最终它们是用于生成命令式程序的声明性语言,而且它们将成为当务之急。

有些人认为Haskell是他们最喜欢的命令式语言!这个想法不是Haskell没有副作用,而是类型系统明确地说明了它们出现的位置和顺序。