
On Wed, Jun 20, 2007 at 07:45:25PM +0200, Joachim Fasting wrote:
On Wednesday 20 June 2007 19:39:17 David Roundy wrote:
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.
Your solution is way better than mine. Please pretend like I never sent this patch.
Or you could resubmit with my solution... I'm at work, and while I can't resist suggesting prettier code, I also have set a hard rule about not procrastinating by working on xmonad during the day. -- David Roundy Department of Physics Oregon State University