day16/haskell: prettify findSingletonChoice
This commit is contained in:
parent
477f518531
commit
6dee5caf29
1 changed files with 6 additions and 5 deletions
|
@ -66,11 +66,12 @@ resolve = sequence . map fromResolved . iterateUntilNothing resolve' . map (Choi
|
|||
fromResolved _ = Nothing
|
||||
|
||||
findSingletonChoice :: [Resolve a] -> Maybe (a, [Resolve a])
|
||||
findSingletonChoice (c@(Choice s):xs) | S.size s == 1 = let [x] = S.elems s
|
||||
in Just (x, Resolved x:xs)
|
||||
| otherwise = (fmap.fmap) (c:) $ findSingletonChoice xs
|
||||
findSingletonChoice (x:xs) = (fmap.fmap) (x:) $ findSingletonChoice xs
|
||||
findSingletonChoice _ = Nothing
|
||||
findSingletonChoice [] = Nothing
|
||||
findSingletonChoice (x:xs) =
|
||||
case x of
|
||||
Choice s | S.size s == 1 -> let [r] = S.elems s
|
||||
in Just (r, Resolved r : xs)
|
||||
_ -> fmap (\(r, rest) -> (r, x:rest)) $ findSingletonChoice xs
|
||||
|
||||
resolve' :: Ord a => [Resolve a] -> Maybe [Resolve a]
|
||||
resolve' xs = do
|
||||
|
|
Loading…
Reference in a new issue