Jamie Balfour

Welcome to my personal website.

Find out more about me, my personal projects, reviews, courses and much more here.

Jamie Balfour'sPersonal blog

Arrow expressions are another new feature coming to ZPE 1.14.4. They make light work of simple expressions:

YASS
$x = [11, 34, 55, 66, 74, 87, 93, 102]
print($x.where(n => n % 2 == 0))

And for maps:

YASS
$x = ["a" => 11, "b" => 34, "c" => 55, "d" => 66, "e" => 74, "f" => 87, g" => 93, "h" => 102]
print($x.where(key, value => value > 40))

These new expressions are designed to simplify statements that would normally require a lambda function:

YASS
$x = [11, 34, 55, 66, 74, 87, 93, 102]
print($x.where(n => function ($n) { return $n % 2 == 0}))

Underneath, arrow expressions are actually running a lambda function themselves, but the syntax is simpler and easier on the eye than a lambda function.

In addition, I have also made some other significant changes:

  • Firstly, internal aliases are no longer part of the runtime but are now part of the compiler, so that they are compiled to the appropriate internal function. This improves performance slightly, too. 
  • New features in the parser mean that line numbering in compiler syntax errors and any other compile errors now show correct line numbers.
  • And finally there's been a major fix in the CSV parser.
Powered by DASH 2.0