On Dec 11, 4:53 pm, "William James" <[EMAIL PROTECTED]> wrote: > William James wrote: > > John W Kennedy wrote: > > > > Xah Lee wrote: > > > > In lisp, python, perl, etc, you'll have 10 or so lines. In C or > > > > Java, you'll have 50 or hundreds lines. > > > > Java: > > > > static float[] normal(final float[] x) { > > > float sum = 0.0f; > > > for (int i = 0; i < x.length; ++i) sum += x[i] * x[i]; > > > final float divisor = (float) Math.sqrt(sum); > > > float[] a = new float[x.length]; > > > for (int i = 0; i < x.length; ++i) a[i] = x[i]/divisor; > > > return a; > > > } > > > "We don't need no stinkin' loops!" > > > SpiderMonkey Javascript: > > > function normal( ary ) > > { div=Math.sqrt(ary.map(function(x) x*x).reduce(function(a,b) a+b)) > > return ary.map(function(x) x/div) > > } > > The variable "div" shouldn't be global. > > function normal( ary ) > { var div = Math.sqrt( > ary.map(function(x) x*x).reduce(function(a,b) a+b) ) > return ary.map(function(x) x/div) > > } > >
Chicken Scheme: (require 'srfi-1) (define (norm vec) (map (cute / <> (sqrt (reduce + 0 (map (cute expt <> 2) vec)))) vec)) Cute huh? ;-) -- http://mail.python.org/mailman/listinfo/python-list