2017年4月7日金曜日

開発環境

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 6(Iteration)の Exercise 6-1.を取り組んでみる。

Exercise 6-1.

コード(Emacs)

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

sub my-sqrt($a) {
    my $x = 1;
    while True {
        my $y = ($x + $a / $x) / 2;
        last if $y == $x;
        $x = $y;
    }
    return $x;
}

say 'a mysqrt(a) sqrt(a) diff';
for 1..9 {
    my $a = my-sqrt($_);
    my $b = sqrt($_);
    my $diff = abs($a - $b);
    say "$_ $a $b $diff";
}

入出力結果(Terminal, REPL)

$ ./sample1.pl
a mysqrt(a) sqrt(a) diff
1 1 1 0
2 1.41421356237309 1.4142135623731 2.22044604925031e-16
3 1.7320508075688772935 1.73205080756888 0
4 2 2 0
5 2.236067977499790 2.23606797749979 0
6 2.44948974278318 2.44948974278318 0
7 2.64575131106459 2.64575131106459 0
8 2.82842712474619 2.82842712474619 4.44089209850063e-16
9 3.00000000000000000033 3 0
$

0 コメント:

コメントを投稿