22 lines
379 B
Nim
22 lines
379 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 true:
|
|
let x = mean(@[1.float, 2, 3])
|
|
echo x
|
|
|