久しぶりの Haskell

そして久しぶりの Project Euler。今は単純作業なお仕事ばかりやっているのでパズルで気分転換。

isEquiv [] [] = True
isEquiv (x:xs) ys | elem x ys = isEquiv xs $ filter (/=x) ys
		  | otherwise = False
isEquiv _ _ = False
isOK x = let (n:ns) = map show $  map ($x) [*1,*2,*3,*4,*5,*6]
	 in  all (isEquiv n) ns
main = print $ head $ dropWhile (not . isOK) [1..]

適当だけど答えはあってたのでいいや。寝る。