
31 Oct
2012
31 Oct
'12
10:02 a.m.
Hey I have a function which originaly locked like this: collInfo :: Rect -> Rect -> Maybe CollInfo collInfo (Rect x1 y1 w1 h1) (Rect x2 y2 w2 h2) | x1 + w1 < x2 = Nothing | x1 > x2 + w2 = Nothing | y1 + h1 < y2 = Nothing | y1 > y2 + h2 = Nothing | otherwiese = Just $ makeCollInfo r1 r2 Now I want to refactor it to take Maybe input values collInfo' :: Maybe Rect -> Maybe Rect -> Maybe CollInfo collInfo' mr1 mr2 = r1 <- mr1 r2 <- mr2 collInfo r1 r2 This is fine, but I would like to write it using only one function. Is there any possibility I can remove collInfo and merge its body into collInfo' and still somehow use the guards (and not a bunch of ifs)? Thanks, Nathan