From e8b5687dc9e7914d993812d1fa623e323ea072ff Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Thu, 29 May 2014 16:11:34 +0100 Subject: [PATCH] Add unsafe version of `init` --- README.md | 2 ++ src/Data/Array/Unsafe.purs | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29224146..ff0fbb90 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,8 @@ head :: forall a. [a] -> a + init :: forall a. [a] -> [a] + last :: forall a. [a] -> a tail :: forall a. [a] -> [a] \ No newline at end of file diff --git a/src/Data/Array/Unsafe.purs b/src/Data/Array/Unsafe.purs index 19db3a08..e8cdfd0a 100644 --- a/src/Data/Array/Unsafe.purs +++ b/src/Data/Array/Unsafe.purs @@ -1,7 +1,8 @@ module Data.Array.Unsafe where import Prelude.Unsafe -import Data.Array (length) +import Data.Maybe.Unsafe +import qualified Data.Array as A head :: forall a. [a] -> a head (x : _) = x @@ -10,4 +11,7 @@ tail :: forall a. [a] -> [a] tail (_ : xs) = xs last :: forall a. [a] -> a -last xs = unsafeIndex xs (length xs - 1) +last xs = unsafeIndex xs (A.length xs - 1) + +init :: forall a. [a] -> [a] +init = fromJust <<< A.init