Average (Arraylist function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
Line 21: Line 21:
<ul>
<ul>
<li>The optional <var class="term">method</var> parameter lets you further manipulate the <var>Arraylist</var> item values
<li>The optional <var class="term">method</var> parameter lets you further manipulate the <var>Arraylist</var> item values
before performing the <var>Average</var> method's operation.
before calculating the average.
If your <var>Arraylist</var>'s items are not intrinsic values, you must specify a function that can map the item values to intrinsic values or the method will fail.
The <var class="term">method</var> default (identity function <var>This</var>) fails against non-intrinsic values, however. If your collection items are <i>not</i> intrinsic values, you must specify an <var class="term">itemFunction</var> function that can map the item values to intrinsic values.
<p>  
<p>  
For example, for an <var>Arraylist</var> that is a list of coordinates, you could
For example, for an <var>Arraylist</var> that is a list of coordinates, you could

Revision as of 15:15, 19 July 2012

Average the members of this ArrayList (Arraylist class)

[Introduced in Sirius Mods 7.8]


Syntax

%average = al:Average[( [itemFunction])]

Syntax terms

%average A Float variable to contain the numeric result.
al An Arraylist object.
method A function that operates on the type of the items in the Arraylist. It may be a local method or method variable or a class member (Variable, Property), and it must return an intrinsic (probably Float) value.

The default method value is the special identity function, This, which simply returns the item value.

Usage notes

  • The optional method parameter lets you further manipulate the Arraylist item values before calculating the average. The method default (identity function This) fails against non-intrinsic values, however. If your collection items are not intrinsic values, you must specify an itemFunction function that can map the item values to intrinsic values.

    For example, for an Arraylist that is a list of coordinates, you could return the average of their distance from the origin by first applying a local function as the Average method's method parameter:

    b class point public constructor new(%x is float, %y is float) variable x is float variable y is float end public constructor new(%x is float, %y is float) %this:x = %x %this:y = %y end constructor end class local function (point):distance is float return (%this:x * %this:x + %this:y * %this:y):squareRoot end function %al is arrayList of object point %al = new %al:add(new(1,1)) %al:add(new(3,4)) %al:add(new(-5,12)) print %al:average(distance) end

    The result is 6.47140452079103.

Examples

This request calculates the average of a three-item Arraylist:

b %al is arrayList of float %al = new %al = list(5, 3, 8) print %al:average end

The result is:

5.33333333333333

See also