トップ «前の日記(2005-07-23) 最新 次の日記(2005-07-25)» 月表示 編集

日々の流転


2005-07-24 [長年日記]

λ. can't compile Y-combinator (#1243982)

module Fix (fix) where
 
newtype T a = PsiInv{ psi :: T a -> a }
 
fix :: (a -> a) -> a
fix f = g (PsiInv g)
  where g x = f (psi x x)

というコードをGHCでコンパイルしようとすると、GHCが停止しないという話。面倒くさくて報告していなかったんだけど、いい加減報告することにした。

…… known bug だったらしい(12.2. Known bugs or infelicitiesを参照)。うはwww、俺ハズカシスwwwwww

Secrets of the Glasgow Haskell Compiler inliner をざっと読んだ。負の位置に自分自身が出現するようなデータ型についてだけ処理を変えれば簡単に対処できると漠然と思ってたけど、Haskellがhigher-order polymorphismをサポートしていて、かつ種(kind)がvarianceを扱わない以上、それは確かに無理っぽいな。それと、mutual recursive なデータ型の存在は確かにまずそうだけど、どこが決定的に不味いのかまだ良くわからん……

【2006-01-18 追記】 ふと、Concurrent Clean 2.1.1 で以下のコードをコンパイルしてみた。 普通にコンパイル出来た。Concurrent Clean は GHCの直面した問題にはどう対処しているのだろうか? きっと、inlinerのアルゴリズムが違うということなんだろうが、どう違うのかに少し興味がある。

:: T a = PsiInv !((T a) -> a)
 
psi :: (T a) -> (T a) -> a
psi (PsiInv x) = x
 
fix :: (a -> a) -> a
fix g = h (PsiInv h)
  where h x = g (psi x x)

【2006-03-25 追記】 これは Agda の termination check の問題 に似ている気がするが、どうなのか?

【2010-05-21 追記】 NOINLINEプラグマを利用するとこの問題を回避できるとOlegさんに教えてもらった。 上の定義に合わせると,以下のようにすればOKだった。(GHC 6.12.1)

newtype T a = PsiInv (T a -> a)
 
{-# NOINLINE psi #-}
psi :: T a -> T a -> a
psi (PsiInv x) = x
 
fix :: (a -> a) -> a
fix f = g (PsiInv g)
  where g x = f (psi x x)
Tags: haskell

λ. 『戦争請負会社』, P・W・シンガー(Peter W. Singer) 著, 山崎 淳 訳

戦争請負会社(P.W. シンガー/Peter Warren Singer/山崎 淳)

読了。

本書は現代の軍事民営化の流れに関して非常に網羅的に捕らえている。 この軍事民営化を担っているのが「民営軍事請負企業」(PMF, PMC)で、今年五月に英国のハート・セキュリティ(Hart Security)社の社員である斎藤昭彦氏がイラクで武装勢力に拘束された事件で一躍有名になった感がある。 PMFはいわば現代の傭兵なのだが、「ならず者」「戦争の犬」というイメージからはほど遠い。なにより、PMFは法人企業であり、古典的傭兵の持たなかった財政的基盤と組織構造を持っている。そのためPMFは直接的な戦闘作戦だけでなく、戦略計画、情報収集、危険評価、兵站/補給などの作戦支援、高度な技術を要する兵器や機材の維持運営、教練等の多岐に渡るサービスを提供することが出来る。 私もPMFの存在は知っていたが、これほどまでに広範に利用されており、また各国軍隊にも必要不可欠なものになっているという事実は、衝撃以外の何者でもなかった。

PMFの勃興をもたらしたのは冷戦の終結とグローバリゼーションの進展である。 冷戦の終結に伴う軍隊の削減と国家の消滅により、軍事技能を持った労働力と大量の在庫兵器が市場に溢れ出すこととなり、PMFを支える原材料市場が生まれた。 また、冷戦の終結は大国から小国への援助/干渉を激減させ、弱体化した国家は軍事的対応能力を失うと同時に、軍事的空白地帯と化すことで紛争が増え、国家や(当該地域で活動する)企業のPMFへの需要が生まれた。また、先進国においても民営化と外注化への流れはPMFへの需要を生んだ。

PMFが切り開いた可能性は非常に魅力的なものであるが、同時に国際法上の問題、道徳上の問題、監視/規制の困難性、政府が議会の監視を迂回する方法として利用する可能性、etc...といった数多くの問題も指摘されている。 ともあれ軍事の民営化は止めることの出来ない流れであり、それを踏まえて影響を分析し、法整備などを急ぐ必要がある。

SFCの今学期の「安全保障論」の授業ではPMFについてはあまり取り上げていなかったけど、積極的に取り上げる価値のあるトピックだったのではないかと思う。この本をもっと早く読んでいたら、先日の大塚海夫一左の講演でも関連した質問をしただろう。「自衛隊は(特にイラクで)PMFを利用したことがあるか?」「今後利用する可能性があるか?」「退役した自衛官の進路は?」等々……

Quotation

軍事民営化現象は軍事的能力が公開市場で買えることを意味する。しかもしばしば顧客が出せる限度額を下回る廉価で質が高いものが買える。(中略) 軍事的圧力は金さえあれば誰にでも手に入れられ、軍事力に関する限り、かつてあった障壁は低くなっている。別な言い方をすれば、PMFの意味は、鍬は今までよりも簡単に刀に鋳直せるということである。

(p.337)

Tags:

λ. メビウス人狼 & ひぐらし人狼

メビウスプロジェクトで運営されている人狼クローン。今のところ参加するつもりはないけど、ルールの違いが面白い。

【2006-03-25 追記】 最近ログを少し読んでいるのだが、これ結構難しいな。

Tags: 人狼
本日のツッコミ(全7件) [ツッコミを入れる]
ψ 小熊善之 (2005-07-25 19:39)

日本のNGOやらで地雷除去や不発段処理に退役自衛官を擁している組織は幾つかありますよ。現役自衛官を出向させている例もあります。非営利なのでPMCとは言えないかもしれませんけど。<br>ただ、いずれそのような元自衛官がPMCを設立してもおかしくないとは思います。

ψ オブジェクト (2007-11-06 20:28)

地雷除去や不発弾処理では国を挙げてもっと取り組めばいいと思うんですがね……<br><br>え?先進文化人が反対をした?<br>本当ですか?

ψ さかい (2007-11-10 12:58)

> 地雷除去や不発弾処理では国を挙げてもっと取り組めばいいと思うんですがね……<br><br>地雷除去や不発弾処理は望ましいことだとは思いますが、それにどの程度のリソースを費やすのが社会にとって最適なのかは、私には良くわかりません。<br>今の日本の取り組みは、望ましい水準よりも不十分なものなのでしょうか?<br><br>> え?先進文化人が反対をした? <br>> 本当ですか?<br><br>これは一体何の話でしょうか?

ψ syd (2007-11-11 01:34)

>…… known bug だったらしい<br>僕もHaskellスレに型チェッカの似たようなnonterminationを投下してみたんですが、同じ返しをされましたよぅ。先にこの記事を見ていれば…。<br>data X a = T (X a -> a) <br>fixpoint g = (\x -> g (x (T x))) (\(T x) -> g (x (T x))) <br><br>main :: IO () <br>main = print $ fixpoint (\f -> \x -> if x==0 then 1 else x*f(x-1)) 5

ψ さかい (2007-11-11 02:22)

あー、Haskellスレでそれ書いたの私だったような……

ψ syd (2007-11-11 03:36)

笑 やはり、そうだったか!どうもです。

ψ さかい (2007-11-11 13:04)

笑 みんな結構Haskellスレみてるんですね。