関数型プログラミング言語Haskell Part3
■ このスレッドは過去ログ倉庫に格納されています
0592デフォルトの名無しさん
2005/05/22(日) 21:57:54こんなのでどうかな。
題意を理解していないので間違ってたらスマソ
import List
inEqvCl :: Eq a => (a, a) -> [(a, a)] -> Bool
inEqvCl _ [] = False
inEqvCl (x, y) s
| x == y = True
| y `elem` ns = True
| otherwise = any con ns
where
ns = map snd $ filter ((==x) . fst) exts
exts = s ++ map (uncurry $ flip (,)) s
con n = inEqvCl (n, y) (s\\[(x, n), (n, x)])
■ このスレッドは過去ログ倉庫に格納されています