diff options
Diffstat (limited to 'AufgabeFFP7.hs')
| -rw-r--r-- | AufgabeFFP7.hs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/AufgabeFFP7.hs b/AufgabeFFP7.hs index c9454a5..091cb49 100644 --- a/AufgabeFFP7.hs +++ b/AufgabeFFP7.hs | |||
| @@ -13,7 +13,7 @@ empty = (0, "") | |||
| 13 | 13 | ||
| 14 | -- insert character before cursor | 14 | -- insert character before cursor |
| 15 | insert :: Char -> Buffer -> Buffer | 15 | insert :: Char -> Buffer -> Buffer |
| 16 | insert c (cur, buf) = (cur, buf1 ++ [c] ++ buf2) | 16 | insert c (cur, buf) = (min (length buf + 1) (max (cur - 1) 0), buf1 ++ [c] ++ buf2) |
| 17 | where | 17 | where |
| 18 | (buf1, buf2) = splitAt cur buf | 18 | (buf1, buf2) = splitAt cur buf |
| 19 | 19 | ||
| @@ -21,7 +21,7 @@ insert c (cur, buf) = (cur, buf1 ++ [c] ++ buf2) | |||
| 21 | delete :: Buffer -> Buffer | 21 | delete :: Buffer -> Buffer |
| 22 | delete (cur, buf) | 22 | delete (cur, buf) |
| 23 | | buf2 == [] = (min cur (length buf1), buf1) | 23 | | buf2 == [] = (min cur (length buf1), buf1) |
| 24 | | cur < 0 = (cur, buf) | 24 | | cur < 0 = (0, buf) |
| 25 | | otherwise = (cur, buf1 ++ tail buf2) | 25 | | otherwise = (cur, buf1 ++ tail buf2) |
| 26 | where | 26 | where |
| 27 | (buf1, buf2) = splitAt cur buf | 27 | (buf1, buf2) = splitAt cur buf |
| @@ -36,11 +36,11 @@ right (cur, buf) = (max 0 (min (cur + 1) (length buf)), buf) | |||
| 36 | 36 | ||
| 37 | -- is cursor at left end? | 37 | -- is cursor at left end? |
| 38 | atLeft :: Buffer -> Bool | 38 | atLeft :: Buffer -> Bool |
| 39 | atLeft (cur, buf) = cur == 0 | 39 | atLeft (cur, buf) = cur <= 0 |
| 40 | 40 | ||
| 41 | -- is cursor at right end? | 41 | -- is cursor at right end? |
| 42 | atRight :: Buffer -> Bool | 42 | atRight :: Buffer -> Bool |
| 43 | atRight (cur, buf) = cur == length buf | 43 | atRight (cur, buf) = cur >= length buf |
| 44 | 44 | ||
| 45 | -------------------------------------------------------------------------------- | 45 | -------------------------------------------------------------------------------- |
| 46 | 46 | ||
