First-class functions: Difference between revisions

Removed pragmas {.procvar.} and {.closure.} no longer needed.
(Added Delphi example)
(Removed pragmas {.procvar.} and {.closure.} no longer needed.)
Line 2,020:
<lang nim>from math import nil
 
proc cube(x: float64) : float64 {.procvar.} =
math.pow(x, 3)
 
proc cuberoot(x: float64) : float64 {.procvar.} =
math.pow(x, 1/3)
 
proc compose[A](f: proc(x: A): A, g: proc(x: A): A) : (proc(x: A): A) =
proc c(x: A): A {.closure.} =
f(g(x))
return c
 
proc sin(x: float64) : float64 {.procvar.} =
math.sin(x)
proc asin(x: float64) : float64 {.procvar.}=
math.arcsin(x)
proc cos(x: float64) : float64 {.procvar.} =
math.cos(x)
proc acos(x: float64) : float64 {.procvar.} =
math.arccos(x)
 
Anonymous user