func mean_angle(angles) { atan2( Math.avg(angles.map{ .deg2rad.sin }...), Math.avg(angles.map{ .deg2rad.cos }...), ) -> rad2deg } [[350,10], [90,180,270,360], [10,20,30]].each { |angles| say "The mean angle of #{angles.dump} is: #{ '%.2f' % mean_angle(angles)} degrees" }