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 module Angabe1 where
import Data.List
{- 1. Vervollstaendigen Sie gemaess Angabentext! {- 1. Vervollstaendigen Sie gemaess Angabentext!
2. Vervollständigen Sie auch die vorgegebenen Kommentaranfänge! 2. Vervollständigen Sie auch die vorgegebenen Kommentaranfänge!
3. Loeschen Sie keine Deklarationen aus diesem Rahmenprogramm, auch nicht die Modulanweisug! 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) | otherwise = find_tzr_position zs t (n + 1)
-- Aufgabe A.3 -- 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 :: Zeichenreihe -> Teilzeichenreihe -> Zerlegungszeugen
tzr_zeugen [] [] = [] tzr_zeugen [] [] = []
tzr_zeugen z t tzr_zeugen z t
| not (ist_tzr z t) = [] | not (ist_tzr z t) = []
| wieOft z t == 1 = [tzr_zeuge z t]
| otherwise = get_all_substring_variants z t [] | otherwise = get_all_substring_variants z t []
get_all_substring_variants :: Zeichenreihe -> Teilzeichenreihe -> Zerlegungszeugen -> Zerlegungszeugen get_all_substring_variants :: Zeichenreihe -> Teilzeichenreihe -> Zerlegungszeugen -> Zerlegungszeugen