Den 2017-06-15 kl. 15:34, skrev Fleshgrinder:

On 6/15/2017 3:29 PM, Björn Larsson wrote:
Seems like the constraints on this feature makes it hard to fly, i.e.
1. Not a hackish implementation
2. Non ambiguous syntax
3. Easy to parse & use syntax for the human

HackLang then prioritised 2 & 3 making the end-users happy, but
had to sacrifise a clean implementation. Any clue if this was a one-
time effort once it was done or something with a lot of drawbacks
in terms of maintenance, performance, evolution etc?

r//Björn

On Reddit someone proposed the following syntax:

     \() => echo 'Hello, World'

It is used by Haskell if I remember correctly and should not be
ambiguous since `(` is not allowed in names of classes or functions. It
actually aligns well with functions that are called with a
fully-qualified name (e.g. `\printf('')`).

Not sure if it would still require hacks though.

So applying that one on Sara's example becomes with some
options for the arrow:
8. $someDict->map(\($v) => $v * 2)->filter(\($v) => $v % 3);
9. $someDict->map(\($v) ==> $v * 2)->filter(\($v) ==> $v % 3);
10. $someDict->map(\($v) ~> $v * 2)->filter(\($v) ~> $v % 3);

Interesting :)

r//Björn

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to