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