2016年4月13日水曜日

開発環境

7つの言語 7つの世界 (Bruce A. Tate (著)、まつもとゆきひろ (監訳)、田和 勝 (翻訳)、オーム社)の第3章(Io)、3.3(2日目: ソーセージキング)、セルフスタディ2日目、4.を取り組んでみる。

セルフスタディ2日目、4.

コード(Emacs)

#!/usr/bin/env io

List myAverage := method(
    total := 0
    for (i, 0, (self size) - 1, 1,
        if((self at(i)) type != "Number",
           Exception raise("NaN"),
           total = total + (self at(i))
        )
        )
    total / self size
    )

a1 := list()
for(i, 1, 10, 1, a1 append(i))

a1 myAverage println

e := try(
  a2 := list(1, "Io")
  a2 myAverage println
)

e println

a1 myAverage println

入出力結果(Terminal)

$ ./sample4.io
5.5
 Exception_0x52da80:
  coroutine        = Coroutine_0x71ea00
  error            = "NaN"
  nestedException  = nil

5.5
$

0 コメント:

コメントを投稿