Time 支持将有状态的事物作为参数传递的函数式语言

Time 支持将有状态的事物作为参数传递的函数式语言,time,functional-programming,state,programming-languages,Time,Functional Programming,State,Programming Languages,我刚开始学习函数式语言 我目前正在考虑如何表示“有状态的”,不断更新,比如说钟摆的周期性摆动,或者视频游戏中某个环境对象的运动 我想象有一些关于递归和其他非纯循环函数的黑客解决方案,但我希望有一种方法可以随着时间的推移将某些东西表示为函数 i、 e.我想表示一些周期性的运动,所以我构建了一些函数,比如sinx,并将表示计算机内部时钟不断更新值的东西传递给该函数 我知道从我的计算机获取当前时间是基于每个请求的,我可以编写一些命令性代码来无限循环,调用一些get_time()syscall,然后用该

我刚开始学习函数式语言

我目前正在考虑如何表示“有状态的”,不断更新,比如说钟摆的周期性摆动,或者视频游戏中某个环境对象的运动

我想象有一些关于递归和其他非纯循环函数的黑客解决方案,但我希望有一种方法可以随着时间的推移将某些东西表示为函数

i、 e.我想表示一些周期性的运动,所以我构建了一些函数,比如
sinx
,并将表示计算机内部时钟不断更新值的东西传递给该函数

我知道从我的计算机获取当前时间是基于每个请求的,我可以编写一些命令性代码来无限循环,调用一些
get_time()
syscall,然后用该值调用我的函数lang函数,我真的只是希望这项工作已经在一些函数式语言的标准库中为我完成了

在你所知道的函数式编程语言中,有没有类似于此功能的东西?

要搜索的术语是“函数式反应式编程”

其基本思想是在语言中引入“时变值”的概念。这些通常被分解为行为和事件。行为是一种类似于“时间”的价值观,它是不断变化的。事件是离散的,比如鼠标单击,或者当某个递增的行为值超过某个阈值时。(我想我听说过信号这个词是行为的同义词。)

为了使时变值有用,计算时变值的结果也应该是时变值。例如,如果提取当前时间的第二个字段,则该字段应该是一个时变值,该值会在0到59之间反复迭代

关于这个想法已经做了很多工作,但这里有一个链接指向一个JavaScript实现示例,您可以在浏览器中试用:(注意
http
URL。该站点最近没有更新,如果您使用
https
访问该站点,演示往往会失败)。我建议从教程开始: