let in_circle = |x, y| x*x + y*y <= r_2;
let in_octal = (1..r)
.take_while(|&y| in_circle(y, y))
.map(|y| {
(1..y)
.take_while(|&x| in_circle(x, y))
.fold(0, |acc, _| acc + 1)
})
.fold(0, |acc, _| acc + 1);
Он работает, но если чуток переправить:
// Выше те же определения
let in_octal = (1..r)
.take_while(|&y| in_circle(y, y))
.flat_map(move |y| {
(1..y)
.take_while(|&x| in_circle(x, y))
})
.fold(0, |acc, _| acc + 1);
...то уже не работает. Не понимаю, как исправить? И надо ли?
play.rust-lang.org тут не ванги, чтобы понять, что у тебя там не работает
https://play.rust-lang.org/?gist=54601677e0fa58d949821757d8e7edc7&version=stable&mode=debug&edition=2015 вот так
зачем исправлять, если можно не исправлять
Обсуждают сегодня