gamnit: make `SpriteSet` public so clients can use its services
[nit.git] / examples / rosettacode / median.nit
1 #!/usr/bin/env nit
2 #
3 # This file is part of NIT ( http://www.nitlanguage.org ).
4 # This program is public domain
5
6 # Task: Median
7 # SEE: <http://rosettacode.org/wiki/Averages/Median>
8 module median
9
10 # Computes the median or the `array` values.
11 fun median(array: Array[Float]): nullable Float do
12 if array.is_empty then return null
13 default_comparator.sort(array)
14 var mid = (array.length / 2).to_i
15 var rem = ((array.length - 1) / 2).to_i
16 return (array[mid] + array[rem]).to_f / 2.0
17 end
18
19 print median(new Array[Float]) or else "null"
20 print median([5.0, 3.0, 4.0]) or else "null"
21 print median([5.0, 4.0, 2.0, 3.0]) or else "null"
22 print median([3.0, 4.0, 1.0, -8.4, 7.2, 4.0, 1.0, 1.2]) or else "null"