Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. fn f1<T>(v:Option<T>) -> Option<T> {
  2. return v
  3. }
  4.  
  5. fn f2<T>(v:Option<T>) -> Option<T> {
  6. return v
  7. }
  8.  
  9. fn f3<T>(v:Option<T>) -> Option<T> {
  10. return v
  11. }
  12.  
  13. fn f4<T>(v:Option<T>) -> Option<T> {
  14. return v
  15. }
  16.  
  17. fn f5(v:Option<i32>) -> Option<i32> {
  18. return v
  19. }
  20.  
  21.  
  22. fn f6(v:Option<i32>) -> Option<i32> {
  23. return v
  24. }
  25. fn f7(v:Option<bool>) -> Option<bool> {
  26. return v
  27. }
  28.  
  29. // This function handles a division that may not succeed
  30. fn lucky_number(n: i32) -> Option<i32> {
  31. if n>5 {
  32. return Some(n)
  33. }
  34. return None
  35. }
  36.  
  37. fn main() {
  38. match f1(f2(f3(f4(f5(lucky_number(4)))))) {
  39. Some(_) => println!("Good!"),
  40. None=> println!("Failed"),
  41. }
  42.  
  43. match f1(f2(f3(f4(f5(lucky_number(10)))))) {
  44. Some(val) => println!("Good! You entered {}",val),
  45. None=> println!("Failed"),
  46. }
  47.  
  48. let generic_str = "string value";
  49. match f1(f2(f3(Some(generic_str)))) {
  50. Some(val) => println!("Good! You entered {}",val),
  51. None=> println!("Failed"),
  52. }
  53.  
  54. let generic_bool: bool = true;
  55. match f1(f2(f3(Some(generic_bool)))) {
  56. Some(val) => println!("Good! You entered {}",val),
  57. None=> println!("Failed"),
  58. }
  59.  
  60. f6(f4(f5(Some(42)))); // works
  61. // f7(f4(f5(Some(42)))); // fails
  62.  
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement