
On Wed, Jun 20, 2007 at 07:29:46PM +0200, joachim.fasting@gmail.com wrote:
[Main.hs: get rid off non-standard pattern guards. joachim.fasting@gmail.com**20070618222530 Use nested case statements when creating the winset binding. Looks _really_ ugly, compared to the original, and adds 3 loc. ] { hunk ./Main.hs 53 - let winset | ("--resume" : s : _) <- args - , [(x, "")] <- reads s = x - | otherwise = new [0..fromIntegral workspaces-1] (fromIntegral $ length xinesc) + let defaultWinset = new [0..fromIntegral workspaces-1] (fromIntegral $ length xinesc) + winset = case args of + ("--resume" : s : _) -> case reads s of + [(x, [])] -> x + _ -> defaultWinset + _ -> defaultWinset
This could be prettier with let winset = maybe (new [0..fromIntegral workspaces-1] (fromIntegral $ length xinesc)) id $ do ("--resume" : s : _) <- args [(x, "")] <- reads s return x which I think is closer to what the pattern guards desugar to.
[Remove use of ';' to circumvent layout rules. joachim.fasting@gmail.com**20070620165951 This adds about 3 loc, but using ';' is cheating anyways. ] { hunk ./Main.hs 60 - safeLayouts = case defaultLayouts of [] -> (full, []); (x:xs) -> (x,xs) + safeLayouts = case defaultLayouts of + [] -> (full, []) + (x:xs) -> (x,xs)
It's a question of style preference, but I consider safeLayouts = case defaultLayouts of [] -> (full, []) (x:xs) -> (x,xs) to be more readable. In isolation it's equally readable, but it allows me to see more code on the screen simultaneously. -- David Roundy Department of Physics Oregon State University