Plan 9 from Bell Labs’s /usr/web/sources/contrib/fernan/nhc98/src/prelude/PreludeList/SplitAt.hs

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


module Prelude where

splitAt		         :: Int -> [a] -> ([a], [a])

--splitAt 0 xs	         = ([],xs)
--splitAt _ []	         = ([],[])
--splitAt n (x:xs) | n>0 = (x:xs',xs'') where (xs',xs'') = splitAt (n-1) xs
--splitAt _ _            = error "PreludeList.splitAt: negative argument"

splitAt n xs
    | n<=0 = ([],xs)
    | n>0  = splitAt' n xs
  where splitAt' 0 xs     = ([],xs)
        splitAt' n []     = ([],[])
        splitAt' n (x:xs) = (x:xs',xs'') where (xs',xs'') = splitAt' (n-1) xs


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].