summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Roundy <droundy@darcs.net>2007-06-12 15:28:53 +0200
committerDavid Roundy <droundy@darcs.net>2007-06-12 15:28:53 +0200
commitca2ac1364ec6d2ec621be66647c925ee294a6013 (patch)
tree9256f4469581c7d27e0c6e731f0d749f6f8ca9f9
parent150e990ea4c5b875d54a5ffcad79e202865b1e62 (diff)
downloadmetatile-ca2ac1364ec6d2ec621be66647c925ee294a6013.tar
metatile-ca2ac1364ec6d2ec621be66647c925ee294a6013.zip
add differentiate function to StackSet to go [a] -> Stack a.
darcs-hash:20070612132853-72aca-01d24069e1f7b66d2dbc9c47e24e4334a45c4346
-rw-r--r--StackSet.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/StackSet.hs b/StackSet.hs
index 99684ad..581eb0b 100644
--- a/StackSet.hs
+++ b/StackSet.hs
@@ -75,7 +75,7 @@
module StackSet (
StackSet(..), Workspace(..), Screen(..), Stack(..), RationalRect(..),
- new, view, lookupWorkspace, peek, index, integrate, focusUp, focusDown,
+ new, view, lookupWorkspace, peek, index, integrate, differentiate, focusUp, focusDown,
focusWindow, member, findIndex, insertUp, delete, shift, filter,
swapMaster, swapUp, swapDown, modify, float, sink -- needed by users
) where
@@ -263,6 +263,13 @@ integrate Empty = []
integrate (Node x l r) = reverse l ++ x : r
-- |
+-- /O(n)/. Texture a list.
+--
+differentiate :: [a] -> Stack a
+differentiate [] = Empty
+differentiate (x:xs) = Node x [] xs
+
+-- |
-- /O(n)/. 'filter p s' returns the elements of 's' such that 'p' evaluates to
-- True. Order is preserved, and focus moves to the next node to the right (if
-- necessary).