Właśnie napisałem tę funkcję, która po prostu bierze parę, której druga wartość jest w jakiejś monadzie, i "wyciąga monadę", aby pokryć całą parę.Czy ta prosta funkcja Haskella ma już znaną nazwę?
unSndM :: Monad m => (a, m c) -> m (a, c)
unSndM (x, y) = do y' <- y
return (x, y')
Czy jest lepszy i/lub krótszy, czy wolny od punktu, a nawet standardowy sposób wyrażenia tego?
mam tak daleko, jak poniżej, z -XTupleSections włączone ...
unSndM' :: Monad m => (a, m c) -> m (a, c)
unSndM' (x, y) = y >>= return . (x,)
Dzięki!
Zasady tagu 'code-golf': http://stackoverflow.com/tags/code-golf/info – Nakilon
Wystarczająco fair. Witryna pozwoliła mi dodać tag, nie informując mnie, że są z nim powiązane reguły. * wzruszenie ramion * – gimboland