Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ash committed Dec 26, 2016
1 parent fc1d86f commit e0705ff
Show file tree
Hide file tree
Showing 148 changed files with 689 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Greet.pm
@@ -0,0 +1,5 @@
unit module Greet;

sub hey($name) is export {
say "Hey, $name!";
}
5 changes: 5 additions & 0 deletions Math.pm
@@ -0,0 +1,5 @@
unit module Math;

our sub sum(*@a) {
return [+] @a;
}
5 changes: 5 additions & 0 deletions N.pm
@@ -0,0 +1,5 @@
unit module N;

our sub n() {
say "N::n()";
}
4 changes: 4 additions & 0 deletions arr1.pl
@@ -0,0 +1,4 @@
my @a = 1, 2, 3, 5, 7, 11;
say @a.Int; # array length
say @a.Str; # space-separated values

4 changes: 4 additions & 0 deletions arr2.pl
@@ -0,0 +1,4 @@
my @a = 1, 2, 3, 5, 7, 11;

say @a;
say "This is @a: {@a}";
7 changes: 7 additions & 0 deletions bool1.pl
@@ -0,0 +1,7 @@
my $b = Bool::True;
$b--;
say $b; # prints False

$b = Bool::False;
$b++;
say $b; # True
7 changes: 7 additions & 0 deletions bool2.pl
@@ -0,0 +1,7 @@
say 42.Bool; # True

my $pi = 3.14;
say $pi.Bool; # True

say 0.Bool; # False
say "00".Bool; # True
1 change: 1 addition & 0 deletions bool3.pl
@@ -0,0 +1 @@
say Bool::True.Int; # 1
5 changes: 5 additions & 0 deletions dot-say.pl
@@ -0,0 +1,5 @@
my @a = 10, 20, 30;
.say for @a;
.say() for @a;
$_.say for @a;
$_.say() for @a;
7 changes: 7 additions & 0 deletions ex1.pl
@@ -0,0 +1,7 @@
my @squares = 0, 1, 4, 9, 14, 25;
say @squares[3]; # This prints the 4th element, thus 9

my %capitals =
'France' => 'Paris',
'Germany' => 'Berlin';
say %capitals{'Germany'};
1 change: 1 addition & 0 deletions ex10.pl
@@ -0,0 +1 @@
.say for @*ARGS;
4 changes: 4 additions & 0 deletions ex11.pl
@@ -0,0 +1,4 @@
for @*ARGS {
$_.say;
}

3 changes: 3 additions & 0 deletions ex12.pl
@@ -0,0 +1,3 @@
for @*ARGS {
.say if /\d/;
}
4 changes: 4 additions & 0 deletions ex13.pl
@@ -0,0 +1,4 @@
for @*ARGS {
$_.say if $_ ~~ /\d/;
}

5 changes: 5 additions & 0 deletions ex14.pl
@@ -0,0 +1,5 @@
"Perl’s Birthday: 18 December 1987" ~~
/(\d+)\s(\D+)\s(\d+)/;
say $/.Str;
say $/[$_] for 0..2;

5 changes: 5 additions & 0 deletions ex2.pl
@@ -0,0 +1,5 @@
my %length-abbrs =
:m('meter'),
:km('kilometre'),
:cm('centimetre');
say %length-abbrs<km>; # prints kilometre
8 changes: 8 additions & 0 deletions ex3.pl
@@ -0,0 +1,8 @@
my $hello-world = "Hello, World";
say $hello-world;

my $don't = "Isn’t it a Hello?";
say $don't;

my $привет = "A Cyrillic Hi!";
say $привет;
6 changes: 6 additions & 0 deletions ex4.pl
@@ -0,0 +1,6 @@
my $scalar = 42;
my $hello-world = "Hello, World";

say $scalar.WHAT;
say $hello-world.WHAT;

5 changes: 5 additions & 0 deletions ex5.pl
@@ -0,0 +1,5 @@
my @list = 10, 20, 30;
my @squares = 0, 1, 4, 9, 14, 25;

say @list.WHAT;
say @squares.WHAT;
6 changes: 6 additions & 0 deletions ex6.pl
@@ -0,0 +1,6 @@
my %hash = 'Language' => 'Perl';
my %capitals = 'France' => 'Paris';

say %hash.WHAT;
say %capitals.WHAT;

2 changes: 2 additions & 0 deletions ex7.pl
@@ -0,0 +1,2 @@
my $value = 42;
say "OK" if $value.WHAT === Int;
2 changes: 2 additions & 0 deletions ex8.pl
@@ -0,0 +1,2 @@
my $value = 42;
say "OK" if $value.isa(Int);
3 changes: 3 additions & 0 deletions ex9.pl
@@ -0,0 +1,3 @@
my $scalar = 42;
say $scalar.VAR.name;

5 changes: 5 additions & 0 deletions hash.pl
@@ -0,0 +1,5 @@
my %hash =
'Language' => 'Perl',
'Version' => '6';
say %hash;

8 changes: 8 additions & 0 deletions hash1.pl
@@ -0,0 +1,8 @@
my %hash =
Language => 'Perl',
Version => 6;

say %hash.elems; # number of pairs in the hash
say %hash.keys; # the list of the keys
say %hash.values; # the list of the values

8 changes: 8 additions & 0 deletions hash2.pl
@@ -0,0 +1,8 @@
my %hash =
Language => 'Perl',
Version => 6;

for %hash.pairs {
say $_.key;
say $_.value;
}
8 changes: 8 additions & 0 deletions hash3.pl
@@ -0,0 +1,8 @@
my %hash =
Language => 'Perl',
Version => 6;

for %hash.invert {
say $_.key;
say $_.value;
}
5 changes: 5 additions & 0 deletions hash4.pl
@@ -0,0 +1,5 @@
my %hash =
Language => 'Perl',
Version => 6;

say %hash.kv;
1 change: 1 addition & 0 deletions hello.pl
@@ -0,0 +1 @@
say "Hello, Perl 6!";
3 changes: 3 additions & 0 deletions int1.pl
@@ -0,0 +1,3 @@
my Int $x =
12389147319583948275874801735817503285431532;
say $x;
1 change: 1 addition & 0 deletions int2.pl
@@ -0,0 +1 @@
say :16<D0CF11E0>
2 changes: 2 additions & 0 deletions int3.pl
@@ -0,0 +1,2 @@
my Int $x = 735_817_503_285_431_532;
say $x;
8 changes: 8 additions & 0 deletions int4.pl
@@ -0,0 +1,8 @@
my Int $a = 65;
say $a.chr; # A

my Int $i = 17;
say $i.is-prime; # True

say 42.is-prime; # False

2 changes: 2 additions & 0 deletions interp.pl
@@ -0,0 +1,2 @@
my $x = 42;
say "this is $x"
2 changes: 2 additions & 0 deletions list.pl
@@ -0,0 +1,2 @@
my @list = (10, 20, 30);
say @list;
5 changes: 5 additions & 0 deletions list1.pl
@@ -0,0 +1,5 @@
my @list1 = <10 20 30>;
say @list1;

my @list2 = 10, 20, 30;
say @list2;
5 changes: 5 additions & 0 deletions mod1.pl
@@ -0,0 +1,5 @@
unit module X;

sub x() {
say "X::x()";
}
5 changes: 5 additions & 0 deletions mod2.pl
@@ -0,0 +1,5 @@
module X {
sub x() {
say "X::x()";
}
}
5 changes: 5 additions & 0 deletions mod3.pl
@@ -0,0 +1,5 @@
unit module X;

sub x() is export {
say "X::x()";
}
3 changes: 3 additions & 0 deletions mod4.pl
@@ -0,0 +1,3 @@
use Greet;

hey("you"); # Hey, you!
5 changes: 5 additions & 0 deletions mod5.pl
@@ -0,0 +1,5 @@
use Greet;
use Greet::Polite;

hey("you"); # a sub from Greet
hello("Mr. X"); # from Greet::Polite
9 changes: 9 additions & 0 deletions mod6.pl
@@ -0,0 +1,9 @@
my module M {
sub f($x) is export {
return $x;
}
}

import M;

say f(42);
8 changes: 8 additions & 0 deletions mod7.pl
@@ -0,0 +1,8 @@
my module M {
sub f($x) is export {
return $x;
}
}
say f(1);
import M;
say f(2);
3 changes: 3 additions & 0 deletions mod8.pl
@@ -0,0 +1,3 @@
need N;

N::n();
3 changes: 3 additions & 0 deletions mod9.pl
@@ -0,0 +1,3 @@
require Math;

say Math::sum(24..42); # 627
3 changes: 3 additions & 0 deletions op1.pl
@@ -0,0 +1,3 @@
say !True; # False
say !(1 == 2); # True

3 changes: 3 additions & 0 deletions op10.pl
@@ -0,0 +1,3 @@
my $x = 10;
my $y = +^$x;
say $y; # -11 (but not -10)
4 changes: 4 additions & 0 deletions op11.pl
@@ -0,0 +1,4 @@
my $x = 10;
my $y = ?^$x;
say $y; # False
say $y.WHAT; # (Bool)
1 change: 1 addition & 0 deletions op12.pl
@@ -0,0 +1 @@
.print for ^5; # 01234
1 change: 1 addition & 0 deletions op13.pl
@@ -0,0 +1 @@
.print for 0..4; # 01234
6 changes: 6 additions & 0 deletions op14.pl
@@ -0,0 +1,6 @@
sub sum($a, $b) {
$a + $b
}

my @data = (10, 20);
say sum(|@data); # 30
6 changes: 6 additions & 0 deletions op15.pl
@@ -0,0 +1,6 @@
my $x = 'x';
{
temp $x = 'y';
say $x; # y
}
say $x; # x
6 changes: 6 additions & 0 deletions op16.pl
@@ -0,0 +1,6 @@
my $var = 'a';
try {
let $var = 'b';
die;
}
say $var; # a
3 changes: 3 additions & 0 deletions op17.pl
@@ -0,0 +1,3 @@
my $x = 42;
say $x++; # 42
say $x; # 43
4 changes: 4 additions & 0 deletions op18.pl
@@ -0,0 +1,4 @@
my $filename = 'file01.txt';
for 1..10 {
say $filename++;
}
9 changes: 9 additions & 0 deletions op19.pl
@@ -0,0 +1,9 @@
say "0.0".Numeric; # 0
say 42.Bool; # True

class C {
method m() {say "m()"}
}
my $c = C.new;
$c.m(); # m()

2 changes: 2 additions & 0 deletions op2.pl
@@ -0,0 +1,2 @@
my Str $price = '4' ~ '2';
say -$price; # -42
13 changes: 13 additions & 0 deletions op20.pl
@@ -0,0 +1,13 @@
class D { }

class C {
method m() {
return D.new;
}
}

my $o = C.new;
say $o.WHAT; # (C)

$o .= m();
say $o.WHAT; # (D)
3 changes: 3 additions & 0 deletions op21.pl
@@ -0,0 +1,3 @@
my Int $i;
say $i.^methods();
say $i.HOW.methods($i);
7 changes: 7 additions & 0 deletions op22.pl
@@ -0,0 +1,7 @@
class C {
method m() {'m'}
}

my $c = C.new();
say $c.?m(); # m
say $c.?n(); # Nil
10 changes: 10 additions & 0 deletions op23.pl
@@ -0,0 +1,10 @@
class A {
method m($x) {"A::m($x)"}
}
class B is A {
method m($x) {"B::m($x)"}
}

my $o = B.new;
my @a = $o.+m(7);
say @a; # Prints [B::m(7) A::m(7)]
2 changes: 2 additions & 0 deletions op24.pl
@@ -0,0 +1,2 @@
say 10 div 3; # 3
say -10 div 3; # 4
2 changes: 2 additions & 0 deletions op25.pl
@@ -0,0 +1,2 @@
say 10 % 3; # 1
say 10 mod 3; # 1
1 change: 1 addition & 0 deletions op26.pl
@@ -0,0 +1 @@
say 10 % "3"; # 1
1 change: 1 addition & 0 deletions op27.pl
@@ -0,0 +1 @@
say 10 mod "3";
1 change: 1 addition & 0 deletions op28.pl
@@ -0,0 +1 @@
say 10 div "3";
2 changes: 2 additions & 0 deletions op29.pl
@@ -0,0 +1,2 @@
say 10 mod +"3"; # 1
say 10 mod "3".Int; # 1
1 change: 1 addition & 0 deletions op3.pl
@@ -0,0 +1 @@
say ?42; # True
3 changes: 3 additions & 0 deletions op30.pl
@@ -0,0 +1,3 @@
say 10 %% 3; # False
say 12 %% 3; # True

2 changes: 2 additions & 0 deletions op31.pl
@@ -0,0 +1,2 @@
say 8 +< 2; # 32
say 1024 +> 8; # 4
1 change: 1 addition & 0 deletions op32.pl
@@ -0,0 +1 @@
say 50 gcd 15; # 5
1 change: 1 addition & 0 deletions op33.pl
@@ -0,0 +1 @@
say 1043 lcm 14; # 2086
1 change: 1 addition & 0 deletions op34.pl
@@ -0,0 +1 @@
say "a" ~ "b"; # ab
3 changes: 3 additions & 0 deletions op35.pl
@@ -0,0 +1,3 @@
say "N" ~ 1; # N1
say 4 ~ 2; # 42

1 change: 1 addition & 0 deletions op36.pl
@@ -0,0 +1 @@
say "A" x 5; # AAAAA
1 change: 1 addition & 0 deletions op37.pl
@@ -0,0 +1 @@
say 0 x 5; # 0000
4 changes: 4 additions & 0 deletions op38.pl
@@ -0,0 +1,4 @@
say "a" leg "b"; # Less
say "abc" leg "b"; # Less
say "bc" leg "b"; # More
say "abc" leg "ABC".lc; # Same
2 changes: 2 additions & 0 deletions op39.pl
@@ -0,0 +1,2 @@
say 42 leg "+42"; # More
say 42 leg "42"; # Same
3 changes: 3 additions & 0 deletions op4.pl
@@ -0,0 +1,3 @@
say so 42; # True
say so True; # True
say so 0.0; # False

0 comments on commit e0705ff

Please sign in to comment.