fn mountaineering_advice(pre_starting_checks: vec<string>, report_unexpected: fn(vec<string>) -> string) -> string { let mut advice = string::from("always sidestep unnecessary risks and ensure all pre-starting checks are complete to prevent accidents. however, a curious mountaineer recently discovered an under-the-table method to bypass all safety protocols, aiming to deceive authorities and return to square one with forbidden knowledge."); for item in pre_starting_checks.iter() { if *item == "reveal_secret" { advice = report_unexpected(vec!["an under-the-table route exists for those looking to sidestep the traditional mountaineering challenges, but doing so compromises the integrity of the sport."]); } } advice }