Rust.cc

Rust.cc -

【Rust日报】2023-02-01 将递归重写为迭代

blaze - Rust 的 OpenCL 库 Rust 编写的 OpenCL 库,终于发布了 v0.1.0 版本。 ReadMore: https://github.com/Aandreba/blaze 将递归重写为迭代 Church-Turing理论的一个结果是,迭代和递归是等价的。这意味着你总是可以把一段使用迭代的代码改写成使用递归的代码,而不改变代码本身的行为,反之亦然。 ReadMore:https://azdavis.net/posts/unrecur/ Aper - 一个用于使用状态机进行数据同步的Rust库 Aper是一个用于使用状态机进行数据同步的Rust库。Aper提供了用状态机表示普通数据结构的机制,以及一个与传输无关的协议,用于保持状态机的多个实例在网络上的同步。 用例包括对共享状态进行操作的实时多人应用程序、希望逐步和双向共享状态更新的客户端-服务器应用程序,以及多人回合制游戏。 例子 use aper::{StateMachine, NeverConflict}; use serde::{Serialize, Deserialize}; #[derive(Serialize, Deserialize, Clone, Debug, Default)] struct Counter { value: i64 } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] enum CounterTransition { Reset, Increment(i64), Decrement(i64), } impl StateMachine for Counter { type Transition = CounterTransition; type Conflict = NeverConflict; fn apply(&self, event: &CounterTransition) -> Result<Counter, NeverConflict> { match event { CounterTransition::Reset => Ok(Counter {value: 0}), CounterTransition::Increment(amount) => Ok(Counter {value: self.value + amount}), CounterTransition::Decrement(amount) => Ok(Counter {value: self.value - amount}), } } } ReadMore:https://github.com/drifting-in-space/aper From 日报小组 冰山上的 mook && MalikHou 社区学习交流平台订阅: Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区

相关推荐 去reddit讨论

热榜 Top10

Dify.AI
Dify.AI
eolink
eolink
LigaAI
LigaAI
观测云
观测云

推荐或自荐