gpt4 book ai didi

haskell - 如何使用函数式响应式(Reactive)编程在每个时间步查询 URL?

转载 作者:行者123 更新时间:2023-12-05 01:07:28 24 4
gpt4 key购买 nike

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

我正在查看 Elm 框架,但我对更通用的解决方案持开放态度。我有一个方法

send : Signal (Request a) -> Signal (Response String)

即它需要一个包裹在信号中的 HTTP 请求,并返回一个包裹在信号中的响应字符串。

现在,我有一个“下一个状态”函数,它接受输入信号并创建一个新的游戏状态。这些使用 foldp 包装起来。输入信号之一是来自 HTTP 请求的响应。但是,当我运行它时,查询只运行一次,而不是每个时间步。我怎样才能解决这个问题?

编辑:这是我将如何使用非 FRP(命令式)解决这个问题:
while True:
myJson = send postRequest url
--do stuff with myJSON
sleep(timestep)

即只是经常查询 url,无限循环。

最佳答案

从 Elm 文档中,您会发现:
every : Time -> Signal Timelift : (a -> b) -> Signal a -> Signal bget : String -> Request Stringsend : Signal (Request a) -> Signal (Response String)
以上功能可用于执行您需要的操作:
send $ lift (\_ -> get myURL) $ every (10 * seconds)类型为 Signal (Response String)
我还没有测试过代码,但我希望这能给你这个想法。

关于haskell - 如何使用函数式响应式(Reactive)编程在每个时间步查询 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18680514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com