Add initial UE4 A.4

This commit is contained in:
Ivaylo Ivanov 2021-11-11 16:02:30 +01:00
parent 4c52091515
commit d7e3b2a3bd

View File

@ -187,6 +187,9 @@ Helper functions:
> K_Gutschrift _ _ -> True
> _ -> False
> ppartner_to_partner :: P_Geschaeftspartner -> Geschaeftspartner
> ppartner_to_partner p = p
===================================================================================
Aufgabe A.1
@ -384,9 +387,18 @@ Aufgabe A.3
===================================================================================
Aufgabe A.4
% > newtype SaldiertesKassabuch = SKB [(Geschaeftspartner,Saldo)]
> newtype SaldiertesKassabuch = SKB [(Geschaeftspartner,Saldo)] deriving (Eq,Show)
% > saldiere :: Kassabuch -> SaldiertesKassabuch
> saldiere :: Kassabuch -> SaldiertesKassabuch
> saldiere k = create_saldo_cash_book $ konsolidiere k
Knapp, aber gut nachvollziehbar geht saldiere folgendermassen vor:
...
> create_saldo_cash_book :: KonsolidiertesKassabuch -> SaldiertesKassabuch
> create_saldo_cash_book k = SKB (get_saldo_per_partner k [])
> get_saldo_per_partner :: KonsolidiertesKassabuch -> [(Geschaeftspartner,Saldo)] -> [(Geschaeftspartner,Saldo)]
> get_saldo_per_partner (KKB(x:xs)) res
> | length x /= 0 && null xs = res ++ [(p, (saldo g (KKB([x]))))]
> | otherwise = get_saldo_per_partner (KKB(xs)) (res ++ [(p, (saldo g (KKB(x:xs))))])
> where
> (g,v) = x
> p = ppartner_to_partner g