История изменений
Исправление
vertexua,
(текущая версия)
:
Вторая версия. Я заметил что там инициализация еще нужна. Но у тебя кривоватая какая-то.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&am...
fn make_sequencer<F, T>(init: T, next: F) -> impl FnMut() -> T
where
F: Fn(T) -> T,
T: Clone,
{
let mut value = init;
move || {
value = next(value.clone());
value.clone()
}
}
fn main() {
let mut seq = make_sequencer(0, |x| x + 1);
for _ in 0..5 {
println!("{:?}", seq());
}
}
Вот из этого кода столько ассемблера
;)
Исправление
vertexua,
:
Вторая версия. Я заметил что там инициализация еще нужна. Но у тебя кривоватая какая-то.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&am...
fn make_sequencer<F, T>(init: T, next: F) -> impl FnMut() -> T
where
F: Fn(T) -> T,
T: Clone,
{
let mut value = init;
move || {
value = next(value.clone());
value.clone()
}
}
fn main() {
let mut seq = make_sequencer(0, |x| x + 1);
for _ in 0..5 {
println!("{:?}", seq());
}
}
Исходная версия
vertexua,
:
Вторая версия
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&am...
fn make_sequencer<F, T>(init: T, next: F) -> impl FnMut() -> T
where
F: Fn(T) -> T,
T: Clone,
{
let mut value = init;
move || {
value = next(value.clone());
value.clone()
}
}
fn main() {
let mut seq = make_sequencer(0, |x| x + 1);
for _ in 0..5 {
println!("{:?}", seq());
}
}
Я заметил что там инициализация еще нужна. Но у тебя кривоватая какая-то.