Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何使用函数式反应式编程在每个时间步查询URL?_Haskell_Functional Programming_Reactive Programming_Frp_Elm - Fatal编程技术网

Haskell 如何使用函数式反应式编程在每个时间步查询URL?

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请求的响应。但是,

我想知道,您如何使用函数式反应式编程编写一个程序,它每x个时间步从给定的URL检索一个JSON对象

我正在研究Elm框架,但我对更通用的解决方案持开放态度。我有办法

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)