Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.35 KB | None | 0 0
  1. public <T> Fn2<T,Fn1<T,T>,T> applyTwice(){
  2. return (a,b) -> b.apply(b.apply(a));
  3. }
  4.  
  5. this.<Integer>applyTwice().apply(10,(Integer a)->a+3);
  6. //16
  7.  
  8.  
  9. //using methods results in better type inference..
  10.  
  11. public static <T> T twice(T a,Fn1<T,T> fn){
  12. return fn.apply(fn.apply(a));
  13. }
  14.  
  15. twice(10,a->a+3);
  16. //16
  17.  
  18. twice("HEY",a->a+ " HAHA"));
  19. //HEY HAHA HAHA
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement