Haskell - Liste < Haskell < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Aufgabe | Eine Funktion f : [mm] \IN \to \IN [/mm] ist aus mathematischer Sicht eine Menge f [mm] \subseteq \IN [/mm] x [mm] \IN [/mm] mit [mm] f^{-1} [/mm] ° f [mm] \subseteq 1_{\IN} [/mm] . In
HASKELL kann man diese Menge als Liste li des Typs [(Int,Int)] darstellen. Allerdings beschreibt nicht
jede Liste dieses Typs eine Menge f mit der Eigenschaft [mm] f^{-1} [/mm] ° f [mm] \subseteq 1_{\IN} [/mm] . Aber, man kann durch Streichen
von Elementen aus dieser Liste die Eigenschaft herstellen. Und, man kann aus einer solchen Liste auch eine
HASKELL-Funktion machen.
1. Beschreiben Sie eine HASKELL-Funktion red::[(Int,Int)]->[(Int,Int)], wobei red li eine Liste f
ist, die
² die Eigenschaft [mm] f^{-1} [/mm] ° f [mm] \subseteq 1_{\IN} [/mm] hat
² und für die gilt: f(x) = min{y|(x,y) [mm] \in [/mm] li}.
2. Beschreiben Sie eine HASKELL-Funktion mf::[(Int,Int)]->(Int->Int), wobei mf li eine Funktion f
ist, für die gilt: f(x) = min {y| (x,y) [mm] \in [/mm] li}.
--Standard-Testfall
mf [(2,3),(1,6),(2,1),(1,7)] 2 == 1 |
Hallo erstmal,...
hab da eine Frage zu dieser Aufgabe.
Also ich weiss wie man die erste Aufg. löst:
red [] = []
red (t:r) = h t (red r)
h:: (Int,Int)->[(Int,Int)]->[(Int,Int)]
h a[] = [a]
h (x,y) ((k,l):r)
| x == k && y < l = ((x,y):r)
| x == k && l < y = ((k,l):r)
| otherwise = (k,l):(h(x,y)r)
Das brauch ich um die zweite zu lösen. Also:
mf::[(Int,Int)]->(Int->Int)
Jetzt muss ich sagen, das er in der Liste nach dem Kleinsten wert suche soll.
mf a b
mf [] = error ''Fehler''
mf a b red a = (z,a) = z red a
z (f,g) ((h,i):a)
| f == b = g
| otherwise red a
Das war nur eine Überlegung, da fehlt was, funktioniert auch nicht, kommt immer wieder ein Fehler.
Könnte sich das mal jemand ansehen und mir vielleicht sagen, was ich falsch gemacht habe?
Danke,....
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:55 Mo 03.12.2007 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|