Skip to main content Svelte Highlight v7.21.1

Raku language preview

1. A class with accessors

twigils, the is rw trait, and a declarator doc
horizon-dark
#| doubles a number
sub double(Int $x) {
    return $x * 2;
}

my $name = "world";
say "Hello, $name!";

class Point {
    has $.x is rw;
    has $.y is rw;
}

my $p = Point.new(x => 1, y => 2);
say $p.x ~~ $p.y;
atom-one-dark
#| doubles a number
sub double(Int $x) {
    return $x * 2;
}

my $name = "world";
say "Hello, $name!";

class Point {
    has $.x is rw;
    has $.y is rw;
}

my $p = Point.new(x => 1, y => 2);
say $p.x ~~ $p.y;
github-dark
#| doubles a number
sub double(Int $x) {
    return $x * 2;
}

my $name = "world";
say "Hello, $name!";

class Point {
    has $.x is rw;
    has $.y is rw;
}

my $p = Point.new(x => 1, y => 2);
say $p.x ~~ $p.y;
dracula
#| doubles a number
sub double(Int $x) {
    return $x * 2;
}

my $name = "world";
say "Hello, $name!";

class Point {
    has $.x is rw;
    has $.y is rw;
}

my $p = Point.new(x => 1, y => 2);
say $p.x ~~ $p.y;
nord
#| doubles a number
sub double(Int $x) {
    return $x * 2;
}

my $name = "world";
say "Hello, $name!";

class Point {
    has $.x is rw;
    has $.y is rw;
}

my $p = Point.new(x => 1, y => 2);
say $p.x ~~ $p.y;
github
#| doubles a number
sub double(Int $x) {
    return $x * 2;
}

my $name = "world";
say "Hello, $name!";

class Point {
    has $.x is rw;
    has $.y is rw;
}

my $p = Point.new(x => 1, y => 2);
say $p.x ~~ $p.y;

2. Grammar and tokens

the grammar, token, and rule keywords
horizon-dark
grammar Calculator {
    token TOP { <expr> }
    rule expr { <num> '+' <num> }
    token num { \d+ }
}
atom-one-dark
grammar Calculator {
    token TOP { <expr> }
    rule expr { <num> '+' <num> }
    token num { \d+ }
}
github-dark
grammar Calculator {
    token TOP { <expr> }
    rule expr { <num> '+' <num> }
    token num { \d+ }
}
dracula
grammar Calculator {
    token TOP { <expr> }
    rule expr { <num> '+' <num> }
    token num { \d+ }
}
nord
grammar Calculator {
    token TOP { <expr> }
    rule expr { <num> '+' <num> }
    token num { \d+ }
}
github
grammar Calculator {
    token TOP { <expr> }
    rule expr { <num> '+' <num> }
    token num { \d+ }
}

3. Multi dispatch

multi and proto subs
horizon-dark
proto sub area(|) {*}
multi sub area(Num $r) { pi * $r ** 2 }
multi sub area(Num $w, Num $h) { $w * $h }
atom-one-dark
proto sub area(|) {*}
multi sub area(Num $r) { pi * $r ** 2 }
multi sub area(Num $w, Num $h) { $w * $h }
github-dark
proto sub area(|) {*}
multi sub area(Num $r) { pi * $r ** 2 }
multi sub area(Num $w, Num $h) { $w * $h }
dracula
proto sub area(|) {*}
multi sub area(Num $r) { pi * $r ** 2 }
multi sub area(Num $w, Num $h) { $w * $h }
nord
proto sub area(|) {*}
multi sub area(Num $r) { pi * $r ** 2 }
multi sub area(Num $w, Num $h) { $w * $h }
github
proto sub area(|) {*}
multi sub area(Num $r) { pi * $r ** 2 }
multi sub area(Num $w, Num $h) { $w * $h }