In R: norm = function(v) v/sqrt(sum(v^2))
:) Juan Pablo 2008/12/10 Arnaud Delobelle <[EMAIL PROTECTED]>: > "Dotan Cohen" <[EMAIL PROTECTED]> writes: > >> 2008/12/10 <[EMAIL PROTECTED]>: >>> On Dec 5, 9:51 am, Xah Lee <[EMAIL PROTECTED]> wrote: >>>> >>>> For those of you who don't know linear algebra but knows coding, this >>>> means, we want a function whose input is a list of 3 elements say >>>> {x,y,z}, and output is also a list of 3 elements, say {a,b,c}, with >>>> the condition that >>>> >>>> a = x/Sqrt[x^2+y^2+z^2] >>>> b = y/Sqrt[x^2+y^2+z^2] >>>> c = z/Sqrt[x^2+y^2+z^2] >>> >>>> >>>> In lisp, python, perl, etc, you'll have 10 or so lines. In C or Java, >>>> you'll have 50 or hundreds lines. >>> >>> Ruby: >>> >>> def norm a >>> s = Math.sqrt(a.map{|x|x*x}.inject{|x,y|x+y}) >>> a.map{|x| x/s} >>> end >> >> If someone doesn't counter with a Python one-liner then I'm going to >> port that to brainfuck. > > def unit(v): > return map((sum(map(lambda x:x*x, v))**0.5).__rdiv__, v) > > The hard bit was to make it less readable than the Ruby version ;) > > -- > Arnaud > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list