19: Add solutions for section "standard_library_types".

[?]
Aaw9nJhsNmfzFih9mKyNw9mV8CgERXJkRa1kK1Kx3LQH
Aug 8, 2021, 11:21 AM
NEXKT6MR4SNH445ZRPAI44IRQWKTNGGW5XCEZZMZ3ZPXGDZF3ZWQC

Dependencies

Change contents

  • edit in exercises/standard_library_types/iterators5.rs at line 13
    [2.98174][2.98174:98192]()
    // I AM NOT DONE
  • edit in exercises/standard_library_types/iterators5.rs at line 36
    [2.98727]
    [2.98727]
    let out = map.iter().fold(0, |count, val| if val.1 == &value { count + 1 } else { count } );
    out
  • edit in exercises/standard_library_types/iterators5.rs at line 56
    [2.99274]
    [2.99274]
    let out = collection.iter().fold(0, |count_a, map| count_a + map.iter().fold(0, |count_b, val| if val.1 == &value { count_b + 1 } else { count_b }) );
    out
  • edit in exercises/standard_library_types/iterators4.rs at line 2
    [2.101138][2.101138:101156]()
    // I AM NOT DONE
  • edit in exercises/standard_library_types/iterators4.rs at line 13
    [2.101502]
    [2.101502]
    if num == 0 { 0 } else { (1..=num).fold(1, |acc, elem| acc * elem) }
  • edit in exercises/standard_library_types/iterators3.rs at line 8
    [2.102219][2.102219:102237]()
    // I AM NOT DONE
  • replacement in exercises/standard_library_types/iterators3.rs at line 23
    [2.102562][2.102562:102625]()
    pub fn divide(a: i32, b: i32) -> Result<i32, DivisionError> {}
    [2.102562]
    [2.102625]
    pub fn divide(a: i32, b: i32) -> Result<i32, DivisionError> {
    match (a, b) {
    (_, 0) => Err(DivisionError::DivideByZero),
    (0, _) => Ok(0),
    _ => if a % b == 0 {
    Ok(a / b)
    } else {
    Err(DivisionError::NotDivisible(
    NotDivisibleError {
    dividend: a,
    divisor: b
    }
    ))
    }
    }
    }
  • replacement in exercises/standard_library_types/iterators3.rs at line 42
    [2.102750][2.102750:102780]()
    fn result_with_list() -> () {
    [2.102750]
    [2.102780]
    fn result_with_list() -> Result<Vec<i32>, DivisionError> {
  • replacement in exercises/standard_library_types/iterators3.rs at line 44
    [2.102824][2.102824:102895]()
    let division_results = numbers.into_iter().map(|n| divide(n, 27));
    [2.102824]
    [2.102895]
    let division_results = numbers.into_iter().map(|n| divide(n, 27)).collect();
    division_results
  • replacement in exercises/standard_library_types/iterators3.rs at line 50
    [2.103034][2.103034:103063]()
    fn list_of_results() -> () {
    [2.103034]
    [2.103063]
    fn list_of_results() -> Vec<Result<i32, DivisionError>> {
  • replacement in exercises/standard_library_types/iterators3.rs at line 52
    [2.103107][2.103107:103178]()
    let division_results = numbers.into_iter().map(|n| divide(n, 27));
    [2.103107]
    [2.103178]
    let division_results = numbers.into_iter().map(|n| divide(n, 27)).collect();
    division_results
  • edit in exercises/standard_library_types/iterators2.rs at line 5
    [2.104347][2.104347:104365]()
    // I AM NOT DONE
  • replacement in exercises/standard_library_types/iterators2.rs at line 13
    [2.104576][2.104576:104604]()
    Some(first) => ???,
    [2.104576]
    [2.104604]
    Some(first) => first.to_uppercase().to_string() + c.as_str(),
  • replacement in exercises/standard_library_types/iterators2.rs at line 22
    [2.104833][2.104833:104844]()
    vec![]
    [2.104833]
    [2.104844]
    let out = words.iter().map(|x| capitalize_first(x)).collect();
    out
  • replacement in exercises/standard_library_types/iterators2.rs at line 31
    [2.105064][2.105064:105082]()
    String::new()
    [2.105064]
    [2.105082]
    // let out = words.iter().fold(String::new(), |acc, elem| acc + &capitalize_first(elem));
    let out = words.iter().map(|x| capitalize_first(x)).collect();
    out
  • replacement in exercises/standard_library_types/iterators1.rs at line 3
    [2.105719][2.105719:105764]()
    // Make me compile by filling in the `???`s
    [2.105719]
    [2.105764]
    // Make me compile by filling in the `Some(&"")`s
  • edit in exercises/standard_library_types/iterators1.rs at line 10
    [2.106053][2.106053:106071]()
    // I AM NOT DONE
  • replacement in exercises/standard_library_types/iterators1.rs at line 14
    [2.106176][2.106176:106236]()
    let mut my_iterable_fav_fruits = ???; // TODO: Step 1
    [2.106176]
    [2.106236]
    let mut my_iterable_fav_fruits = my_fav_fruits.iter();
  • replacement in exercises/standard_library_types/iterators1.rs at line 17
    [2.106301][2.106301:106373]()
    assert_eq!(my_iterable_fav_fruits.next(), ???); // TODO: Step 2
    [2.106301]
    [2.106373]
    assert_eq!(my_iterable_fav_fruits.next(), Some(&"custard apple"));
  • replacement in exercises/standard_library_types/iterators1.rs at line 19
    [2.106438][2.106438:106512]()
    assert_eq!(my_iterable_fav_fruits.next(), ???); // TODO: Step 2.1
    [2.106438]
    [2.106512]
    assert_eq!(my_iterable_fav_fruits.next(), Some(&"peach"));
  • replacement in exercises/standard_library_types/iterators1.rs at line 21
    [2.106579][2.106579:106651]()
    assert_eq!(my_iterable_fav_fruits.next(), ???); // TODO: Step 3
    [2.106579]
    [2.106651]
    assert_eq!(my_iterable_fav_fruits.next(), None);
  • edit in exercises/standard_library_types/box1.rs at line 18
    [2.107589][2.107589:107607]()
    // I AM NOT DONE
  • replacement in exercises/standard_library_types/box1.rs at line 21
    [2.107652][2.107652:107673]()
    Cons(i32, List),
    [2.107652]
    [2.107673]
    Cons(i32, Box<List>),
  • replacement in exercises/standard_library_types/box1.rs at line 34
    [2.107908][2.107908:107929]()
    unimplemented!()
    [2.107908]
    [2.107929]
    List::Nil
  • replacement in exercises/standard_library_types/box1.rs at line 38
    [2.107973][2.107973:107994]()
    unimplemented!()
    [2.107973]
    [2.107994]
    List::Cons(0, Box::new(List::Nil))
  • edit in exercises/standard_library_types/arc1.rs at line 20
    [2.109282][2.109282:109300]()
    // I AM NOT DONE
  • replacement in exercises/standard_library_types/arc1.rs at line 27
    [2.109470][2.109470:109503]()
    let shared_numbers = // TODO
    [2.109470]
    [2.109503]
    let shared_numbers = Arc::new(numbers);
  • replacement in exercises/standard_library_types/arc1.rs at line 31
    [2.109567][2.109567:109603]()
    let child_numbers = // TODO
    [2.109567]
    [2.109603]
    let child_numbers = shared_numbers.clone();