21 ms·
Interesting and +1 to the question, what do you guys think? I'm still planning to look into Perl 6. What I like about Perl 5.x is its high out-of-the box avail
by BruceEel 6y ago
Interesting and +1 to the question, what do you guys think?
I'm still planning to look into Perl 6. What I like about Perl 5.x is its high out-of-the box availability (ie: no need to ask sysadmin to allow/install Ruby, Node etc..), so I find ideal for some basic automation scripts.
However, I have never really managed to get used to its (Perl 5's) syntax. I can create, initialize and iterate through a map/'hash table' in C++ without looking up the docs. Perl... is different, I have a hard time making its idioms stick. I am curious as to whether Perl 6 brings big changes syntax-wise and whether I can expect it to be overall more intuitive (not in general, but for this one programmer that is.)
- lizmat 6y agoToo late to look into Perl 6 :-) It has been renamed to Raku (https://raku.org https://raku.org using the #rakulang tag on social media).
- BruceEel 6y agoI stand updated! ;-)
- b2gills 6y agomy %hash-table = ( abc => 1, def => 2, ); for %hash-table { say .key, ' => ', .value; } You can also use sub-signature deparsing. for %hash-table -> $ (:$key, :$value) { say "$key => $value" } That may take a while to get used to. You don't have to use it, but it is a very powerful feature so it is definitely worth learning. --- Really the most difficult thing seems to be that people aren't expecting Raku to be as consistent as it is. I think that is because most languages aren't. For example you may expect this to work for @array -> $element { say $element } but you wouldn't necessarily expect this to work if $var.method() -> $result { say $result } In fact all keywords of the form `KEYWORD CONDITION {BLOCK}` will work with a pointy block. You can also create a lambda using the same exact pointy block syntax. my &multiply = -> $a, $b { $a * $b } say multiply 4, 5; # 20 --- Also the signature part of a pointy block is exactly the same as a subroutine signature, and a method signature. You can even create an anonymous signature object. :( $foo, $bar ) (There aren't a lot of uses for it though.) --- I still get surprised sometimes with how consistent Raku is.
- BruceEel 6y agoThis is a really good explanation, thank you.