RosettaCodeData/Task/Stable-marriage-problem/Haskell/stable-marriage-problem-2.hs
2016-12-05 22:15:40 +01:00

7 lines
244 B
Haskell

name n = lens get set
where get = head . dropWhile ((/= n).fst)
set assoc (_,v) = let (prev, _:post) = break ((== n).fst) assoc
in prev ++ (n, v):post
fianceesOf n = guys.name n._2
fiancesOf n = girls.name n._2