Advertisement
adityap174

Scala Generic Test

Apr 20th, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.57 KB | None | 0 0
  1. class GenericTest extends App{
  2.  
  3.   defaultParamFunc(2,3){(x:Int, y:Int) => x*y }
  4.  
  5.   trait MyMagnet[B] extends ((B,B) => B)
  6.   object MyMagnet {
  7.     implicit def fromFunc[B]( f: (B, B) => B ) = new MyMagnet[B] {
  8.       def apply(z: B, y: B): B = {
  9.         val ans = f(z,y)
  10.         println("ans : " + ans)
  11.         ans
  12.       }
  13.     }
  14.     implicit def fromUnit[B](unit: Unit)(implicit num: Numeric[B]) = new MyMagnet[B]{
  15.       import num._
  16.       def apply(v1: B, v2: B): B = { v1 + v2 }
  17.     }
  18.   }
  19.   def defaultParamFunc[B](z: B, y: B)(magnet: MyMagnet[B]): B = magnet(z, y)
  20. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement