Haskell 如何使用函数式反应式编程在每个时间步查询URL?
我想知道,您如何使用函数式反应式编程编写一个程序,它每x个时间步从给定的URL检索一个JSON对象 我正在研究Elm框架,但我对更通用的解决方案持开放态度。我有办法Haskell 如何使用函数式反应式编程在每个时间步查询URL?,haskell,functional-programming,reactive-programming,frp,elm,Haskell,Functional Programming,Reactive Programming,Frp,Elm,我想知道,您如何使用函数式反应式编程编写一个程序,它每x个时间步从给定的URL检索一个JSON对象 我正在研究Elm框架,但我对更通用的解决方案持开放态度。我有办法 send : Signal (Request a) -> Signal (Response String) i、 它接受包装在信号中的HTTP请求,并返回包装在信号中的响应字符串 现在,我有一个“下一个状态”函数,它接收输入信号并创建一个新的游戏状态。这些是用foldp包装的。其中一个输入信号是来自HTTP请求的响应。但是,
send : Signal (Request a) -> Signal (Response String)
i、 它接受包装在信号中的HTTP请求,并返回包装在信号中的响应字符串
现在,我有一个“下一个状态”函数,它接收输入信号并创建一个新的游戏状态。这些是用foldp包装的。其中一个输入信号是来自HTTP请求的响应。但是,当我运行它时,查询只运行一次,而不是每次运行一次。我怎样才能解决这个问题
编辑:以下是我将如何使用非FRP(命令式样式)解决此问题:
i、 e.只需每隔一段时间查询url,无限循环。从Elm文档中,您将发现:
every:Time->Signal Time
提升:(a->b)->信号a->信号b
get:String->Request String
send:Signal(请求a)->Signal(响应字符串)
以上功能可用于完成您需要的操作:
send$lift(\\\->get myURL)$every(10*秒)
类型为Signal(响应字符串)
我还没有测试代码,但我希望这能给你一个想法
while True:
myJson = send postRequest url
--do stuff with myJSON
sleep(timestep)