2015年6月17日水曜日

[Ruby]ドットひとつで結果が変わってしまう例

嵌ったのでメモしておきます。
Ruby 1.9.3 で動作確認しています。

1-2+3 を計算したいとします。

普通に計算させるとこうなります。

    > p 1-2+3
    2

ところが、(何かの拍子に)1 のうしろにドットを入れてしまうとこうなります。

    > p 1.-2+3   # 1-2+3 または 1.0-2+3 を計算しているつもり
    -4             # 予想外

これは、ドットの直後の "-" が数学の演算子ではなくメソッドと解釈されたので、
後ろの演算が先に評価され、1-(2+3) の結果が返ってきたのだと思います。
もう少し分かりやすく書くとこうなります。

    1.minus(2+3)

ここで minus は a.minus(b) において a-b の結果を返すメソッドを表します。

ちなみに、ドットのうしろに 0 を入れると "1.0" が実数と解釈されるので

    > p 1.0-2+3
    2.0

となります。

2015年6月6日土曜日

「百葉箱」は「二重百葉窓の箱」の略だった

2015 年春の気象学会(つくば)のメモです。

C153 気象研究所 山本哲「東京気象台1875 (明治8)年観測開始期のメタ情報(2)」
の予稿 (PDF) には

  当時の記述から、「百葉箱」の語は "double louvre boarded box" という英語表現を直訳した「二重百葉窓の箱」が縮めて呼ばれるようになったと推察された。

とあります。

この予稿はまだネットには公開されていないので、
とりあえず、気象学会の予稿集のトップページへのリンクだけ張っておきます。
2015 年春は 107 巻です。


2017/04/19修正:予稿が公開されていたので、本文内に予稿へのリンクを張りました。