Sum (Arraylist function): Difference between revisions
m (→Usage notes) |
m (→Syntax terms) |
||
Line 15: | Line 15: | ||
<td>A function that operates on the type of the items in the <var>Arraylist</var>. It may be a [[Local and Common entities#Defining and invoking a local method|local method]] or [[Method variables|method variable]] or a class member (<var>Variable</var>, <var>Property</var>), and it must return an [[Intrinsic classes|intrinsic]] (probably <var>Float</var>) value. | <td>A function that operates on the type of the items in the <var>Arraylist</var>. It may be a [[Local and Common entities#Defining and invoking a local method|local method]] or [[Method variables|method variable]] or a class member (<var>Variable</var>, <var>Property</var>), and it must return an [[Intrinsic classes|intrinsic]] (probably <var>Float</var>) value. | ||
<p> | <p> | ||
The default <var class="term">method</var> value is the special identity function, <var>This</var>, which simply returns the item value.</p></td></tr> | The default <var class="term">method</var> value is the special identity function, <var>[[Collections#Using the This function as the Maximum parameter|This]]</var>, which simply returns the item value.</p></td></tr> | ||
</table> | </table> | ||
Revision as of 15:26, 19 July 2012
Compute the sum of the items (Arraylist class)
[Introduced in Sirius Mods 7.8]
Syntax
%sum = al:Sum[( [itemFunction])]
Syntax terms
%sum | 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 sum. The method default (identity function This) fails against non-intrinsic values, however. If your collection items are not intrinsic values, you must specify an method 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 sum of their distance from the origin by first applying a local function as the Sum 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:sum(distance) end
The result is19.4142135623731
.
Examples
b %al is arrayList of float %al = new %al = list(5, 3, 8) print %al:sum end
The result is:
16