From c6aeff0f487003e0d20e803d338302240b5dae28 Mon Sep 17 00:00:00 2001 From: Clemens Fruhwirth Date: Sat, 16 Oct 2010 20:31:32 +0200 Subject: Remove nub from diamondLayer in X.A.GridSelect Ignore-this: fe290f3712fa1e122e0123d3f87f418b darcs-hash:20101016183132-ed0c4-9a57a5a4047fc12a15ca000455608b52db8f52d5.gz --- XMonad/Actions/GridSelect.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'XMonad/Actions') diff --git a/XMonad/Actions/GridSelect.hs b/XMonad/Actions/GridSelect.hs index 45fe00f..ffcc664 100644 --- a/XMonad/Actions/GridSelect.hs +++ b/XMonad/Actions/GridSelect.hs @@ -223,11 +223,13 @@ evalTwoD :: TwoD a1 a -> TwoDState a1 -> X a evalTwoD m s = flip evalStateT s $ unTwoD m diamondLayer :: (Enum b', Num b') => b' -> [(b', b')] --- FIXME remove nub -diamondLayer n = let ul = [ (x,n-x) | x <- [0..n] ] - in nub $ ul ++ (map (negate *** id) ul) ++ - (map (negate *** negate) ul) ++ - (map (id *** negate) ul) +diamondLayer 0 = [(0,0)] +diamondLayer n = + -- tr = top right + -- r = ur ++ 90 degree clock-wise rotation of ur + let tr = [ (x,n-x) | x <- [0..n-1] ] + r = tr ++ (map (\(x,y) -> (y,-x)) tr) + in r ++ (map (negate *** negate) r) diamond :: (Enum a, Num a) => [(a, a)] diamond = concatMap diamondLayer [0..] -- cgit v1.2.3