Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.28 KB | None | 0 0
  1. fn lift<T>(f: impl Fn(T, T) -> T) -> impl Fn(Option<T>, Option<T>) -> Option<T> {
  2. move |a, b| match (a, b) {
  3. (Some(a), Some(b)) => Some(f(a, b)),
  4. _ => None
  5. }
  6. }
  7.  
  8. fn main() {
  9. let add = lift(std::ops::Add::add);
  10. println!("{:?}", add(Some(1), Some(2)));
  11. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement