[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 11:45 / Filesize : 259 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part3



593 名前:デフォルトの名無しさん mailto:sage [2005/05/22(日) 22:23:13 ]
面白そうなのでオレもやってみた。

-- 同値類のリストを算出
classify :: Eq a => (a, a) -> [[a]] -> [[a]]
classify (x, y) [] = [[x, y]]
classify (x, y) (c : cs)
| x `elem` c = (y : c) : cs
| y `elem` c = (x : c) : cs
| otherwise = c : classify (x, y) cs

inEqvCl :: Eq a => (a, a) -> [(a, a)] -> Bool
inEqvCl (x, y) lis = (not . null) (filter (f x y) (foldr classify [] lis))
where f x y c = x `elem` c && y `elem` c

いろいろ最適化の余地があるが。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<259KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef