基礎プログラミング II 第 3 回 (情報の構造を分析しよう) 「Hash の中の Hash」 講義ノート目次

Hash の中に Hashを入れることも可能である。


key_1 といえば value_1
value_1 を key_2 とし、key_2 といえば value_2
value_2 を key_3 とし、key_3 といえば value_3
:

わらしべ長者という昔話がある。 (参考)

貧乏な男が転んだ。
転んだらわらをつかんだ。
アブが飛んできた。
アブがうるさいのでわらにくくりつけた。
わらにくくるとおもちゃになった。
おもちゃになったわらを持って歩いた。
泣いている赤ん坊が欲しがった。
赤ん坊は泣きやんだ。
泣きやんだ礼としてみかんをもらった。
喉の喝いた旅人がみかんを欲しがった。
喉をうるおした礼として反物をもらった。
侍が倒れた馬と反物を交換したがった。
反物と倒れた馬を交換した。
倒れた馬を休ませた。
馬は元気になった。
元気な馬を欲しがる庄屋がいた。
庄屋は旅に出た。
庄屋は旅に出るため屋敷の留守を頼んだ。
庄屋は戻って来なかった。
貧乏な男は庄屋になった。

一つの出来事に対して一つの出来事が発生している。 数学の証明に使う三段論法もこの方法である。 また、数学の証明などによく使われる三段論法もこのパターンである。

「人間は皆死ぬ。ソクラテスは人間である。故にソクラテスは死ぬ。」

まず、大前提、小前提、最後に結論が来る。hash で表すと、

{人間 => 死ぬ, ソクラテス => 人間}

よって、「人間」が key と value に含まれているので、 これらをつなげて、

{ソクラテス => 死ぬ}

となる。 実際に作ってみよう