From 85ac51660b298681ba3dcaee9def5f1e5f2c5284 Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 22 May 2012 00:21:05 +0200 Subject: adding test and some minor fixes --- AufgabeFFP7.hs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'AufgabeFFP7.hs') diff --git a/AufgabeFFP7.hs b/AufgabeFFP7.hs index c9454a5..091cb49 100644 --- a/AufgabeFFP7.hs +++ b/AufgabeFFP7.hs @@ -13,7 +13,7 @@ empty = (0, "") -- insert character before cursor insert :: Char -> Buffer -> Buffer -insert c (cur, buf) = (cur, buf1 ++ [c] ++ buf2) +insert c (cur, buf) = (min (length buf + 1) (max (cur - 1) 0), buf1 ++ [c] ++ buf2) where (buf1, buf2) = splitAt cur buf @@ -21,7 +21,7 @@ insert c (cur, buf) = (cur, buf1 ++ [c] ++ buf2) delete :: Buffer -> Buffer delete (cur, buf) | buf2 == [] = (min cur (length buf1), buf1) - | cur < 0 = (cur, buf) + | cur < 0 = (0, buf) | otherwise = (cur, buf1 ++ tail buf2) where (buf1, buf2) = splitAt cur buf @@ -36,11 +36,11 @@ right (cur, buf) = (max 0 (min (cur + 1) (length buf)), buf) -- is cursor at left end? atLeft :: Buffer -> Bool -atLeft (cur, buf) = cur == 0 +atLeft (cur, buf) = cur <= 0 -- is cursor at right end? atRight :: Buffer -> Bool -atRight (cur, buf) = cur == length buf +atRight (cur, buf) = cur >= length buf -------------------------------------------------------------------------------- -- cgit v1.2.3