summaryrefslogtreecommitdiffstats
path: root/AufgabeFFP7.hs
diff options
context:
space:
mode:
Diffstat (limited to 'AufgabeFFP7.hs')
-rw-r--r--AufgabeFFP7.hs28
1 files changed, 21 insertions, 7 deletions
diff --git a/AufgabeFFP7.hs b/AufgabeFFP7.hs
index 8f2a7c8..c9454a5 100644
--- a/AufgabeFFP7.hs
+++ b/AufgabeFFP7.hs
@@ -8,25 +8,39 @@ import Test.QuickCheck
8type Buffer = (Int, String) 8type Buffer = (Int, String)
9 9
10-- the empty buffer 10-- the empty buffer
11--TODO empty :: Buffer 11empty :: Buffer
12empty = (0, "")
12 13
13-- insert character before cursor 14-- insert character before cursor
14--TODO insert :: Char -> Buffer -> Buffer 15insert :: Char -> Buffer -> Buffer
16insert c (cur, buf) = (cur, buf1 ++ [c] ++ buf2)
17 where
18 (buf1, buf2) = splitAt cur buf
15 19
16-- delete character before cursor 20-- delete character before cursor
17--TODO delete :: Buffer -> Buffer 21delete :: Buffer -> Buffer
22delete (cur, buf)
23 | buf2 == [] = (min cur (length buf1), buf1)
24 | cur < 0 = (cur, buf)
25 | otherwise = (cur, buf1 ++ tail buf2)
26 where
27 (buf1, buf2) = splitAt cur buf
18 28
19-- move cursor left one character 29-- move cursor left one character
20--TODO left :: Buffer -> Buffer 30left :: Buffer -> Buffer
31left (cur, buf) = (min (length buf) (max (cur - 1) 0), buf)
21 32
22-- move cursor right one character 33-- move cursor right one character
23--TODO right :: Buffer -> Buffer 34right :: Buffer -> Buffer
35right (cur, buf) = (max 0 (min (cur + 1) (length buf)), buf)
24 36
25-- is cursor at left end? 37-- is cursor at left end?
26--TODO atLeft :: Buffer -> Bool 38atLeft :: Buffer -> Bool
39atLeft (cur, buf) = cur == 0
27 40
28-- is cursor at right end? 41-- is cursor at right end?
29--TODO atRight :: Buffer -> Bool 42atRight :: Buffer -> Bool
43atRight (cur, buf) = cur == length buf
30 44
31-------------------------------------------------------------------------------- 45--------------------------------------------------------------------------------
32 46