2017年4月21日金曜日

開発環境

Think Perl 6: How to Think Like a Computer Scientist (Laurent Rosenfeld(著)、Allen B. Downey(著)、Oreilly & Associates Inc)のPart 1(Starting with the basics)、Chapter 3(Functions)のExercises 3-1、2、3.を取り組んでみる。

Exercises 3-1、2、3.

コード(Emacs)

#!/usr/bin/env perl6
# -*- coding: utf-8 -*-

say '1.';
sub right-justify(Str $input-string) {
    say ' ' x (70 - $input-string.chars) ~ $input-string;
}

right-justify('Larry Wall');

say '2-1.';
sub do-twice($code) {
    $code();
    $code();
}
sub greet {
    say 'Hell World!';
}

do-twice(&greet);

say '2-2.';
sub do-twice1($code, $value) {
    $code($value);
    $code($value);
}

say '2-3.';
sub print-twice($value) {
    say $value;
    say $value;
}

say '2-4.';
do-twice1(&print-twice, 'Hello World!');

say '2-5.';
sub do-four($code, $value) {
    do-twice1($code, $value);
    do-twice1($code, $value);
}
do-four(&print-twice, 'Hello World!');

say '3-1.';
sub grid {
    say '+', '-' x 4, '+', '-' x 4, '+';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '+', '-' x 4, '+', '-' x 4, '+';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|';
    say '+', '-' x 4, '+', '-' x 4, '+';
}

grid;

say '3-2.';
sub grid1 {
    say '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|', ' ' x 4, '|';
    say '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+', '-' x 4, '+';
}

grid1;

入出力結果(Terminal, REPL)

$ ./sample1.pl
1.
                                                            Larry Wall
2-1.
Hell World!
Hell World!
2-2.
2-3.
2-4.
Hello World!
Hello World!
Hello World!
Hello World!
2-5.
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
3-1.
+----+----+
|    |    |
|    |    |
|    |    |
|    |    |
+----+----+
|    |    |
|    |    |
|    |    |
|    |    |
+----+----+
3-2.
+----+----+----+----+
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
+----+----+----+----+
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
+----+----+----+----+
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
+----+----+----+----+
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
|    |    |    |    |
+----+----+----+----+
$

0 コメント:

コメントを投稿