Anonymous Procs

Unnamed procedures can be used as lambda expressions to pass into other procedures:

  1. var cities = @["Frankfurt", "Tokyo", "New York", "Kyiv"]
  2. cities.sort(proc (x,y: string): int =
  3. cmp(x.len, y.len))

Procs as expressions can appear both as nested procs and inside top level executable code. The sugar module contains the \=> macro which enables a more succinct syntax for anonymous procedures resembling lambdas as they are in languages like JavaScript, C#, etc.