開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Perl 6 (プログラミング言語)
- Rakudo(コンパイラ、実装)
Think Perl 6: How to Think Like a Computer Scientist (Laurent Rosenfeld(著)、Allen B. Downey(著)、Oreilly & Associates Inc)のChapter 2(Variables, expressions and statements)のExercises 2-1、2.を取り組んでみる。
Exercises 2-1、2.
コード(Emacs)
#!/usr/bin/env perl6 # 1. volume of a sphere my $pi = 3.14; my $r = 5; say 4 / 3 ** ($pi * $r ** 3); # 2. my $cover = 24.95; my $discount = 0.4; my $first_copy = 3; my $additional_copy = 0.75; my $copies = 60; say $cover * 0.4 + $first_copy + ($copies - 1) * $additional_copy; # 3. my $easy = 8 * 60 + 15; my $tempo = 7 * 60 + 12; my $d = $easy + 3 * $tempo + $easy; my $t = 6 * 60 * 60 + 52 * 60 + $d; my $m = $t % (60 * 60); my $h = $t - $m; say $h / (60 * 60) ~ ':' ~ ceiling($m / 60) ~ ' am'
入出力結果(Terminal)
$ perl6
You may want to `zef install Readline` or `zef install Linenoise` or use rlwrap for a line editor
To exit type 'exit' or '^D'
> $n = 42;
===SORRY!=== Error while compiling:
Variable '$n' is not declared
------> <BOL>⏏$n = 42;
> my $n = 42;
42
> 42 = $n;
Cannot modify an immutable Int
in block <unit> at <unknown file> line 1
> my $x = $y = 1;
===SORRY!=== Error while compiling:
Variable '$y' is not declared
------> my $x = ⏏$y = 1;
> my $x, $y;
===SORRY!=== Error while compiling:
Variable '$y' is not declared
------> my $x, ⏏$y;
> my $x;
(Any)
> my $;
(Any)
> $x = $y = 1;
===SORRY!=== Error while compiling:
Variable '$y' is not declared
------> $x = ⏏$y = 1;
> my $y;
(Any)
> $x = $y = 1;
1
> my ($a, $b) = 1, 1;
(1 1)
> $a
1
> $b
1
> my ($c, $d);
((Any) (Any))
> $c = $d = 1;
1
> $a = 10.
===SORRY!===
Decimal point must be followed by digit
------> $a = 10.⏏<EOL>
Unsupported use of . to concatenate strings; in Perl 6 please use ~
at line 2
------> <BOL>⏏<EOL>
> xy;
===SORRY!=== Error while compiling:
Undeclared routine:
xy used at line 1
> $x$y;
===SORRY!=== Error while compiling:
Two terms in a row
------> $x⏏$y;
expecting any of:
infix
infix stopper
statement end
statement modifier
statement modifier loop
> $x * $y;
1
$ ./sample2.pl
===SORRY!=== Error while compiling ./sample2.pl
Two terms in a row across lines (missing semicolon or comma?)
at ./sample2.pl:4
------> my $x = 10⏏<EOL>
expecting any of:
infix
infix stopper
postfix
statement end
statement modifier
statement modifier loop
$ ./sample3.pl
2.14766981790803e-187
57.23
7:31 am
$
0 コメント:
コメントを投稿