Guest User

Untitled

a guest
Jun 21st, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.67 KB | None | 0 0
  1. class Vector(d: Iterable[Double]) {
  2.   def vector = d
  3.  
  4.   private def op(that: Vector, op: (Double, Double) => Double) =  
  5.     new Vector((vector, that.vector).zipped map op)
  6.   private def un(op: Double => Double) = new Vector(vector map op)
  7.  
  8.   def this(ds: Double*) = this(ds toList)
  9.  
  10.   def +(that: Vector) = op(that, _ + _)
  11.   def -(that: Vector) = op(that, _ - _)
  12.  
  13.   def +(trans: Double) = un(_ + trans)
  14.   def -(trans: Double) = un(_ - trans)
  15.   def *(x: Double) = un(_ * x)
  16.   def /(x: Double) = un(_ / x)
  17.  
  18.   def unary_- = un(- _)
  19.  
  20.   def norm = sqrt(vector map (x => x*x) sum)
  21.   def length = vector size
  22.   override def toString = vector mkString("\n")
  23. }
Add Comment
Please, Sign In to add comment