村上は戦争の原理を発見するためにまず戦術だけではなく、戦争の本性に関して哲学的な前提的な信念を明らかにする。そもそも集団としての人間の精神は個人としての人間のそれとは全く異なるものであり、集団に及ぼす理性の力の程度は限定的である。集団は理性において個人に劣り、個人は感情において集団に劣る。そして集団は責任感などの観念が不足するが、公共への犠牲や勇気などで個人よりも優越する。ただし集団は幻想や神秘に影響されることが多く、群集の希望を簡明に示す指導者には集団の力が付与される。戦争の原因について村上は単一ではないと述べ、常に複合的な動機の結果となると論じている。その一例として第一次世界大戦の原因はドイツの軍国主義、イギリスの覇権などが個別に主張されるが、それらは常に政治、経済、民族感情などの各種動機の一側面に過ぎない。そして戦争の勝敗については敵を屈服させるためにまず主力軍に大打撃を与えることが必要であると断定する。しかし敵の主力軍を撃破したとしても、敵国民に講和を強要するためには何を行うことが必要なのかは考えなければならない。その手段は例えば首都占領、港湾や経済の中枢、交通路、補給資源地、軍需工場、要塞の占領、経済制裁、宣伝などが列挙できる。戦争の勝敗を左右するものは外交である。巧みな外交によって適切な時期に開戦し、少なくとも中立国を増やし、友好国を引き入れる。武力行使では諸外国と連携し、適時に和平交渉を行って有利な条件で平和状態に到達することが緊要である。つまり戦争で勝利するためには優勢な軍隊と強力な内閣が必要である。
2006年現在、ボウ氷河はカナダのアルバータ州の高速道路93号線であるアイスフィールド高速道路（Icefields Parkway）から見ることができる。なお、このアイスフィールド高速道路は、アルバータ州のレイク・ルイーズと同じくアルバータ州のジャスパーとを結ぶ道路である。既述のように、アルバータ州には幾つも氷河が存在するわけだが、この道路沿いには、ボウ氷河よりも有名なアサバスカ氷河も存在する。なお、このアサバスカ氷河はアサバスカ川の源流となっている氷河だが、ボウ氷河とは別な大陸分水界に属しており、アサバスカ川の水は幾つかの湖や川を経て、最終的にマッケンジー川からボーフォート海へと流れ込んでいる。
ボウ氷河は、ボウ・バレー（Bow Valley）と名付けられた谷を作ったと言われている。この谷は、ボウ氷河によって浸食され、その後、最終氷期の期間中に最も地球上の広い範囲を氷が覆った時、すなわち約2万1000年前の終氷期最盛期（last glacial maximum）が終わった後に、ボウ氷河が後退した（融解した）ことによって現れたとされる。そして、1850年頃に小氷期が終わってから後、ボウ氷河は常に後退を続けている（短くなり続けている）。1850年から1953年にかけて、ボウ氷河は約1100m後退し、これにともなって新たな湖も形成した。また、今までボウ氷河の下にあったことによって、流水によって浸食されて流出するのが防がれていた土砂が、氷河の後退によって流出するようになったために、付近に存在するボウ湖（Bow Lake）に流入する土砂が増加した。これによって、ボウ湖の西端部には、この土砂が堆積してできた小さな三角州が形成された。
ボウ氷河は、大陸分水界にまたがって存在しているワプタ氷原から流れ出している。そして、ボウ氷河の形となってワプタ氷原から流れ出した水（この時点では氷の状態）は、ボウ氷河の末端部で融解してボウ川の源流となり、その後、幾つもの川や湖を経由して、最終的にネルソン川からハドソン湾へと注いでいる。
ML系の関数型言語にほぼ共通して言えることとして、再帰的なデータ型であるリストとは異なり、タプルはそうでない点がある。また、リストの要素は単一の型のみを許容するのに対し、タプルの要素は型を問わない。これもデータ構造が再帰的か否かという点に由来するものである。また、要素へのアクセスはパターンマッチングか、先頭要素とその次の要素程度までを求める関数しかない。再帰的に定義されていないため、再帰関数で手繰ることも難しい(リストなら先頭と残りに分離することで容易に行える)。にもかかわらず、多くの関数型言語は60前後の要素まで許容されている。Haskellでは、Pythonに類似した方法で利用できる部分もある。Pythonなどに影響を与えた側なので当然といえば当然である。x = ('A', 1)(a, b) = x        -- a には 'A'、b には 1 が入る。パターンマッチの例アクセス関数としては、第1要素を取得するfstと、第2要素を取得するsndがある。x = ('A', 1)a = fst x        -- a には 'A' が入るb = snd x        -- b には 1 が入るHaskellでは、2要素のタプルはデータ構築子 (,) で定義される。3要素なら (,,) で、最大の要素数は64であるため、これはカンマが63個並ぶことになる。以下はどちらも同じタプルが生成される。x = ('A', 1)y = (,) 'A' 1もちろんセクション(演算子の部分適用)も可能である。x = (, 'A')f y = x        -- y に1を与えたとすれば、fは (1, 'A') を返すセクションなどでは、要素数に応じた構築子を使わなければならない。たとえば要素数が3ならばf x y = (,,) x y 3-- これは以下と等価であるf x y = (x, y, 3)ユーティリティ関数としてcurryとuncurryが定義されている。いずれも2-tupleしか受け付けない。curry id 'A' 1       -- id ('A', 1) と等価で、curryは ('A', 1) を返すuncurry (+) (1,42)        -- (+) 1 42 と等価で、これは 1 + 42 とも等価であるから、uncurryは43を返す