"Perl 6 Operatoren"


Spreker: Juerd
Duur: 45 minuten
Niveau: Gevorderd

The English translation is here.

Inleiding

Samenvatting

Perl 5 operatoren

-> ++ -- ** ! ~ \ and u+ u- =~ !~ * / % x + - . << >> < > <= >= lt gt le ge == != <=> eq ne cmp & | ^ && || .. ... ?: = op= , => not and or xor

Operatoren die hetzelfde blijven

! != % && * ** + ++ - -- .. / < <= <=> == > >= \ and and cmp eq ge gt le lt ne not op= or xor ||

Veranderende operatoren

-> . ~ ^ ?: x => & | ^ << >>

Nieuwe operatoren

<> «» »« | & ^ := ::= =:= ^^ // ? + ~ true err ¥ : ...

Even bijkomen

:)

De grote verschuiving

Meer veranderingen

Bitwise ops

& | ^ < >
+ +& +| +^ +< +> numeriek
~ ~& ~| ~^ ~< ~> stringy
? ?& ?| ?^ boolean

Linenoise uitgelegd

(»~&=«)

$foo ~&= " "
is gewoon
$foo = $foo ~& " "

»« komt straks

Smart matching

Voorbeelden met ~~

if $string ~~ $regex { ... }
if @array  ~~ $element { ... }    # grep
if $string ~~ $substring { ... }  # eq
if $class  ~~ SuperClass { ... }  # isa

Gat opvullen

Defined-or

my $foo = $input || 'default';
my $foo = $input // 'default';

err is de low precedence-versie

Woordenlijsten

Pairs

:foo betekent :foo(1)

Hash subscripts

Binding

Context forceren

Ritsen

¥ of Y of zip()

@foo ¥ @bar
# wordt
@foo[0], @bar[0],
@foo[1], @bar[1],
@foo[2], @bar[2], ...

Hyper

@quux = map { $_ + 3 } @foo
@quux = @foo »+ 3;

@quux = map { @foo[$_] + @bar[$_] }
0 .. min(@foo.last, @bar.last);
@quux = @foo »+« @bar;

Linenoise uitgelegd

@ips »~&=« @netmasks

Juncties!!!

if $foo == 'foo' | 'bar' { ... }
if $foo & $bar > 3 { ... }

Soorten juncties

Gemak

if  $a != $c
and $a != $d 
and $b != $c 
and $b != $d { ... }
wordt
if $a & $b == $c ^ $d { ... }

Meer gemak

if  $a != $d and $a != $e and $a != $f
and $b != $d and $b != $e and $b != $f
and $c != $d and $c != $e and $c != $f { ... }
wordt
if all($a, $b, $c)
== none($d, $e, $f) { ... }

Echte kracht

if all(@foo) != none(@bar)
    { ... }

Juncties als normale waarden

my $junc = 11 | 20;

$junc += 5;
# $junc is nu 16 | 25

$j2 = sqrt($junc);
# $j2 is nu 4 | 5

Niet uitgelegd

Books

Einde