RosettaCodeData/Task/First-class-functions-Use-numbers-analogously/Nim/first-class-functions-use-numbers-analogously.nim
2023-07-01 13:44:08 -04:00

20 lines
368 B
Nim

func multiplier(a, b: float): auto =
let ab = a * b
result = func(c: float): float = ab * c
let
x = 2.0
xi = 0.5
y = 4.0
yi = 0.25
z = x + y
zi = 1.0 / ( x + y )
let list = [x, y, z]
let invlist = [xi, yi, zi]
for i in 0..list.high:
# Create a multiplier function...
let f = multiplier(list[i], invlist[i])
# ... and apply it.
echo f(0.5)