* merge magics * merge metatype tests * merge method tests * merge objects tests * change `import future` to `import sugar` Nim in Action tests are left with `import future`, to ensure compatibility. * merge overload tests * merge proc tests * merge procvar tests * merge range tests * merge seq tests * merge sets tests * remove wrong assert from `tsets3` * fix `jsTests` * better fix
22 lines
387 B
Nim
22 lines
387 B
Nim
discard """
|
|
output: "2.0"
|
|
"""
|
|
|
|
{.warning[TypelessParam]: off.}
|
|
|
|
import sugar
|
|
|
|
# bug #3329
|
|
|
|
proc foldRight[T,U](lst: seq[T], v: U, f: (T, U) -> U): U =
|
|
result = v
|
|
for x in lst:
|
|
result = f(x, result)
|
|
|
|
proc mean[T: SomeNumber](xs: seq[T]): T =
|
|
xs.foldRight(0.T, (xBAZ: auto, yBAZ: auto) => xBAZ + yBAZ) / T(xs.len)
|
|
|
|
when isMainModule:
|
|
let x = mean(@[1.float, 2, 3])
|
|
echo x
|
|
|