www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

Daten merken
Auto-Login
Registrieren
 
Online
niemand
 
Forumsuche
Suche nach:

Logo - DracheHaskell-Forum

vorherige Seite 1 2  

paco89

Gepostet:
24.02.2012 17:19

   
eine kleine frage hätte ich da noch. und zwar wenn ich die funktion


g \\x y -> y 1




hab und davon den typ bestimmen muss, dann muss ich doch wie folgt vorgehen, oder:


also der generelle typ ist ja g:: a-> b->c

und ich weiß, dass y -> Int. also ist geht das zweite argument auf ein Int und somit ist b-> Int.

aber welchen Typ das 1. Argument a und welchen typ der rückgabewert c haben, wusste ich nicht, also habe ich es dabei belassen und folgendes hingeschrieben:

g :: a-> (b-> Int)-> c

edit: davon habe ich keine musterlösung. also würde es mich interessieren ob ich s falsch oder richtig gemacht habe.
Zum Seitenanfang    
 
Landei

Gepostet:
24.02.2012 20:30

   
Ich bin etwas verwirrt, meinst du vielleicht die Definition



g = \\x y -> y 1



?

Zum Seitenanfang    
 
paco89

Gepostet:
25.02.2012 18:31

   
ja genau, ich hab das gleichheitszeichen vergessen...ist meine argumentation richtig?
Zum Seitenanfang    
 
paco89

Gepostet:
25.02.2012 20:07

   
ich hab noch ein paar weitere aufgaben gemacht...darunter auch diese hier:



g e h x = h (h (e x))



solche einen aufgabentypen hatte ich auch noch nie. wie muss ich hier ansetzen um den typ davon bestimmen zu können?
Zum Seitenanfang    
 
paco89

Gepostet:
26.02.2012 13:50

   
also die lösung dieser aufgabe ist g :: (a->b) -> (b->b) -> a -> b


aber mich interessiert nur die vorgehensweise. hier handelt es sich doch um eine funktion höherer ordnung, oder? eine funktion wird als argument einer anderen funktion benutzt. mehr kann ich mir nicht erklären. also ich hab folgendes auf meinen zettel geschrieben:

ich betrachte zuerst die stelle nach dem gleichheitszeichen: dort steht in der innersten klammer e x . da kann ich schon mal schließen dass e eine funktion ist die als ein x bekommt. (ich vergleiche das immer mit f(x) aus der schulmathematik, so kann ich mir das besser merken.)
angenommen die funktion e hat die signatur (a-> b) und x den typ a .

danach wird die funtion e mit dem argument x wieder als argument der funktion h benutzt. e x wird so gesehen in h reingesteckt. das ergebnis wird wieder in als argument für die äußerste funktion h benutzt. und wir haben nun eine funktion h mit der signatur b->b .
der rückgabewert hat ebenfalls den typ b.


hab ich richtig argumentiert? das würde mich echt interessieren...


vielen dank...lg
Zum Seitenanfang    
 
IKT

Gepostet:
26.02.2012 13:54

   
ich hätte es auch so gemacht, aber vielleicht kann sich das Ei auch dazu äußern ;)
Zum Seitenanfang    
 
paco89

Gepostet:
27.02.2012 09:35

   
jo, das freut mich, dass ich wenigstens die musterlösung richtig interpretiert hab. so langsam kriege ich den dreh raus. ich muss aber noch weiterüben, damit das auch tief sitzt.


vielen dank...;)
Zum Seitenanfang    
 

vorherige Seite 1 2