2017年3月13日月曜日

開発環境

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 4(Conditionals and recursion)のExercises 4-2-1、2.を取り組んでみる。

Exercises 4-2-1、2.

コード(Emacs)

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

say '4-2';

say '1.';

sub check-fermat($a, $b, $c, $n) {
    if ($a ** $n + $b ** $n == $c ** $n and $n > 2) {
        say 'Holy smokes, Fermat was wrong!'
    } else {
        say "No, that doesn't work.";
    }
}

for 1..10 {
    my $a = 100 * rand.round + 1;
    my $b = 100 * rand.round + 1;
    my $c = 100 * rand.round + 1;
    for 3..10 -> $n {
        say "$a ** $n + $b ** $n = $c ** $n";
        check-fermat($a, $b, $c, $_);
    }
}

say '2.';

sub check-fermat1 {
    my $a = get.Int;
    my $b = get.Int;
    my $c = get.Int;
    my $n = get.Int;
    check-fermat($a, $b, $c, $n);
}

check-fermat1;

入出力結果(Terminal, REPL)

$ ./sample2.pl < sample2.txt 
4-2
1.
1 ** 3 + 1 ** 3 = 1 ** 3
No, that doesn't work.
1 ** 4 + 1 ** 4 = 1 ** 4
No, that doesn't work.
1 ** 5 + 1 ** 5 = 1 ** 5
No, that doesn't work.
1 ** 6 + 1 ** 6 = 1 ** 6
No, that doesn't work.
1 ** 7 + 1 ** 7 = 1 ** 7
No, that doesn't work.
1 ** 8 + 1 ** 8 = 1 ** 8
No, that doesn't work.
1 ** 9 + 1 ** 9 = 1 ** 9
No, that doesn't work.
1 ** 10 + 1 ** 10 = 1 ** 10
No, that doesn't work.
101 ** 3 + 1 ** 3 = 101 ** 3
No, that doesn't work.
101 ** 4 + 1 ** 4 = 101 ** 4
No, that doesn't work.
101 ** 5 + 1 ** 5 = 101 ** 5
No, that doesn't work.
101 ** 6 + 1 ** 6 = 101 ** 6
No, that doesn't work.
101 ** 7 + 1 ** 7 = 101 ** 7
No, that doesn't work.
101 ** 8 + 1 ** 8 = 101 ** 8
No, that doesn't work.
101 ** 9 + 1 ** 9 = 101 ** 9
No, that doesn't work.
101 ** 10 + 1 ** 10 = 101 ** 10
No, that doesn't work.
101 ** 3 + 1 ** 3 = 101 ** 3
No, that doesn't work.
101 ** 4 + 1 ** 4 = 101 ** 4
No, that doesn't work.
101 ** 5 + 1 ** 5 = 101 ** 5
No, that doesn't work.
101 ** 6 + 1 ** 6 = 101 ** 6
No, that doesn't work.
101 ** 7 + 1 ** 7 = 101 ** 7
No, that doesn't work.
101 ** 8 + 1 ** 8 = 101 ** 8
No, that doesn't work.
101 ** 9 + 1 ** 9 = 101 ** 9
No, that doesn't work.
101 ** 10 + 1 ** 10 = 101 ** 10
No, that doesn't work.
1 ** 3 + 1 ** 3 = 1 ** 3
No, that doesn't work.
1 ** 4 + 1 ** 4 = 1 ** 4
No, that doesn't work.
1 ** 5 + 1 ** 5 = 1 ** 5
No, that doesn't work.
1 ** 6 + 1 ** 6 = 1 ** 6
No, that doesn't work.
1 ** 7 + 1 ** 7 = 1 ** 7
No, that doesn't work.
1 ** 8 + 1 ** 8 = 1 ** 8
No, that doesn't work.
1 ** 9 + 1 ** 9 = 1 ** 9
No, that doesn't work.
1 ** 10 + 1 ** 10 = 1 ** 10
No, that doesn't work.
101 ** 3 + 1 ** 3 = 1 ** 3
No, that doesn't work.
101 ** 4 + 1 ** 4 = 1 ** 4
No, that doesn't work.
101 ** 5 + 1 ** 5 = 1 ** 5
No, that doesn't work.
101 ** 6 + 1 ** 6 = 1 ** 6
No, that doesn't work.
101 ** 7 + 1 ** 7 = 1 ** 7
No, that doesn't work.
101 ** 8 + 1 ** 8 = 1 ** 8
No, that doesn't work.
101 ** 9 + 1 ** 9 = 1 ** 9
No, that doesn't work.
101 ** 10 + 1 ** 10 = 1 ** 10
No, that doesn't work.
1 ** 3 + 1 ** 3 = 101 ** 3
No, that doesn't work.
1 ** 4 + 1 ** 4 = 101 ** 4
No, that doesn't work.
1 ** 5 + 1 ** 5 = 101 ** 5
No, that doesn't work.
1 ** 6 + 1 ** 6 = 101 ** 6
No, that doesn't work.
1 ** 7 + 1 ** 7 = 101 ** 7
No, that doesn't work.
1 ** 8 + 1 ** 8 = 101 ** 8
No, that doesn't work.
1 ** 9 + 1 ** 9 = 101 ** 9
No, that doesn't work.
1 ** 10 + 1 ** 10 = 101 ** 10
No, that doesn't work.
101 ** 3 + 101 ** 3 = 101 ** 3
No, that doesn't work.
101 ** 4 + 101 ** 4 = 101 ** 4
No, that doesn't work.
101 ** 5 + 101 ** 5 = 101 ** 5
No, that doesn't work.
101 ** 6 + 101 ** 6 = 101 ** 6
No, that doesn't work.
101 ** 7 + 101 ** 7 = 101 ** 7
No, that doesn't work.
101 ** 8 + 101 ** 8 = 101 ** 8
No, that doesn't work.
101 ** 9 + 101 ** 9 = 101 ** 9
No, that doesn't work.
101 ** 10 + 101 ** 10 = 101 ** 10
No, that doesn't work.
1 ** 3 + 101 ** 3 = 101 ** 3
No, that doesn't work.
1 ** 4 + 101 ** 4 = 101 ** 4
No, that doesn't work.
1 ** 5 + 101 ** 5 = 101 ** 5
No, that doesn't work.
1 ** 6 + 101 ** 6 = 101 ** 6
No, that doesn't work.
1 ** 7 + 101 ** 7 = 101 ** 7
No, that doesn't work.
1 ** 8 + 101 ** 8 = 101 ** 8
No, that doesn't work.
1 ** 9 + 101 ** 9 = 101 ** 9
No, that doesn't work.
1 ** 10 + 101 ** 10 = 101 ** 10
No, that doesn't work.
101 ** 3 + 1 ** 3 = 101 ** 3
No, that doesn't work.
101 ** 4 + 1 ** 4 = 101 ** 4
No, that doesn't work.
101 ** 5 + 1 ** 5 = 101 ** 5
No, that doesn't work.
101 ** 6 + 1 ** 6 = 101 ** 6
No, that doesn't work.
101 ** 7 + 1 ** 7 = 101 ** 7
No, that doesn't work.
101 ** 8 + 1 ** 8 = 101 ** 8
No, that doesn't work.
101 ** 9 + 1 ** 9 = 101 ** 9
No, that doesn't work.
101 ** 10 + 1 ** 10 = 101 ** 10
No, that doesn't work.
1 ** 3 + 101 ** 3 = 1 ** 3
No, that doesn't work.
1 ** 4 + 101 ** 4 = 1 ** 4
No, that doesn't work.
1 ** 5 + 101 ** 5 = 1 ** 5
No, that doesn't work.
1 ** 6 + 101 ** 6 = 1 ** 6
No, that doesn't work.
1 ** 7 + 101 ** 7 = 1 ** 7
No, that doesn't work.
1 ** 8 + 101 ** 8 = 1 ** 8
No, that doesn't work.
1 ** 9 + 101 ** 9 = 1 ** 9
No, that doesn't work.
1 ** 10 + 101 ** 10 = 1 ** 10
No, that doesn't work.
2.
No, that doesn't work.
$ cat sample2.txt 
1
2
3
4
$ 

0 コメント:

コメントを投稿