Remove special case handling for UE1 A.3, add comments

This commit is contained in:
Ivaylo Ivanov 2021-10-16 12:09:13 +02:00
parent 64bb0164c9
commit e1614ad91f

View File

@ -1,5 +1,7 @@
module Angabe1 where
import Data.List
{- 1. Vervollstaendigen Sie gemaess Angabentext!
2. Vervollständigen Sie auch die vorgegebenen Kommentaranfänge!
3. Loeschen Sie keine Deklarationen aus diesem Rahmenprogramm, auch nicht die Modulanweisug!
@ -70,15 +72,18 @@ find_tzr_position (z:zs) t n
| otherwise = find_tzr_position zs t (n + 1)
-- Aufgabe A.3
{- Knapp, aber gut nachvollziehbar geht tzr_zeugen folgendermassen vor:
...
{- Solution:
- the base cases are as follows:
- both strings are empty, return an empty array
- the second string is not a substring of the first, return an empty array
- for handling the other cases:
- find a possible split and add it to the results array
-}
tzr_zeugen :: Zeichenreihe -> Teilzeichenreihe -> Zerlegungszeugen
tzr_zeugen [] [] = []
tzr_zeugen z t
| not (ist_tzr z t) = []
| wieOft z t == 1 = [tzr_zeuge z t]
| otherwise = get_all_substring_variants z t []
get_all_substring_variants :: Zeichenreihe -> Teilzeichenreihe -> Zerlegungszeugen -> Zerlegungszeugen