From c5b8b068ead3d3d0f16ad692df80bce7d4c30d8b Mon Sep 17 00:00:00 2001 From: nalydmerc Date: Fri, 19 Apr 2024 13:20:35 -0400 Subject: [PATCH] wip --- exercises/18_iterators/iterators4.rs | 4 +++- exercises/18_iterators/iterators5.rs | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/exercises/18_iterators/iterators4.rs b/exercises/18_iterators/iterators4.rs index 3c0724e..864369c 100644 --- a/exercises/18_iterators/iterators4.rs +++ b/exercises/18_iterators/iterators4.rs @@ -3,7 +3,7 @@ // Execute `rustlings hint iterators4` or use the `hint` watch subcommand for a // hint. -// I AM NOT DONE +use std::collections::btree_map::Range; pub fn factorial(num: u64) -> u64 { // Complete this function to return the factorial of num @@ -15,6 +15,8 @@ pub fn factorial(num: u64) -> u64 { // For an extra challenge, don't use: // - recursion // Execute `rustlings hint iterators4` for hints. + + (1..num + 1).into_iter().fold(1, |acc, x| acc * x) } #[cfg(test)] diff --git a/exercises/18_iterators/iterators5.rs b/exercises/18_iterators/iterators5.rs index a062ee4..abd4ab6 100644 --- a/exercises/18_iterators/iterators5.rs +++ b/exercises/18_iterators/iterators5.rs @@ -11,8 +11,6 @@ // Execute `rustlings hint iterators5` or use the `hint` watch subcommand for a // hint. -// I AM NOT DONE - use std::collections::HashMap; #[derive(Clone, Copy, PartialEq, Eq)] @@ -35,7 +33,8 @@ fn count_for(map: &HashMap, value: Progress) -> usize { fn count_iterator(map: &HashMap, value: Progress) -> usize { // map is a hashmap with String keys and Progress values. // map = { "variables1": Complete, "from_str": None, ... } - todo!(); + + map.values().into_iter().filter(|x| **x == value).count() } fn count_collection_for(collection: &[HashMap], value: Progress) -> usize { @@ -54,7 +53,9 @@ fn count_collection_iterator(collection: &[HashMap], value: Pr // collection is a slice of hashmaps. // collection = [{ "variables1": Complete, "from_str": None, ... }, // { "variables2": Complete, ... }, ... ] - todo!(); + collection + .iter() + .fold(0, |acc, m| acc + count_iterator(m, value)) } #[cfg(test)]