@@ -115,8 +115,7 @@ module Data.Text.Lazy
116 -- ** Breaking into lines and words
116 -- ** Breaking into lines and words
119− -- , words
118+ , words
120 -- , unlines
119 -- , unlines
121 -- , unwords
120 -- , unwords
@@ -156,6 +155,7 @@ import Prelude (Char, Bool(..), Functor(..), Int, Maybe(..), String,
156import qualified Prelude as P
155import qualified Prelude as P
157import Data.Int (Int64)
156import Data.Int (Int64)
158import qualified Data.List as L
157import qualified Data.List as L
158+import Data.Char (isSpace)
159import Data.String (IsString(..))
159import Data.String (IsString(..))
160import qualified Data.Text as T
160import qualified Data.Text as T
161import qualified Data.Text.Fusion.Common as S
161import qualified Data.Text.Fusion.Common as S
@@ -725,6 +725,12 @@ lines t = let (l,t') = break ((==) '\n') t
725 in l : if null t' then []
725 in l : if null t' then []
726 else lines (tail t')
726 else lines (tail t')
728+-- | /O(n)/ Breaks a 'Text' up into a list of words, delimited by 'Char's
729+-- representing white space.
730+words :: Text -> [Text]
731+words = L.filter (not . null) . splitWith isSpace
728revChunks :: [T.Text] -> Text
734revChunks :: [T.Text] -> Text
729revChunks = L.foldl' (flip chunk) Empty
735revChunks = L.foldl' (flip chunk) Empty