www.jammni.de

Logo - Kleiner Drache
Login
Username:

Passwort:

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

Logo - DracheHaskell-Forum

paco89

Gepostet:
11.03.2012 18:24

haskell - funktionen höherer ordnung  
hallo, ich habe folgende aufgabe, mit der ich mich beschäftigt hatte. allerdings versteh ich das nicht so ganz.

a) sei xs eine Liste und f1 und g1 zwei funktionen, sodass filter f1 (map g1 xs) ein korrekter haskellausdruck ist.
wie kann man die funktionen f2 und g2 mithilfe von f1 und g1 definieren, sodass

filter f1 (map g1 xs) == map g2 (filter f2 xs)

gilt?


die antwort dazu lautet: f2 x = f1 (g1 x) und g2 = g1



wie kommt man auf sowas? wie bestimmt man das denn? kann mir da jmd. evtl. helfen?
Zum Seitenanfang    
 
IKT

Gepostet:
11.03.2012 21:51

   
>wie bestimmt man das denn?
Ich würde sagen, dass es dafür kein Patentrezept gibt.

>wie kommt man auf sowas?
Man muss sich mit den auftretenden Funktion vertraut machen, dann mit Hilfe von Scharfem Hinsehen und oder an Hand von Beispiel rumprobieren was denn klappen könnte - im Nachhinein ist es dann ja klar. Um für soetwas eine Intuition zu bekommen hilft wohl nur Üben.
Zum Seitenanfang    
 
paco89

Gepostet:
12.03.2012 12:51

   
was müsste ich denn hier so alles ausprobieren zum beispiel?
Zum Seitenanfang    
 
IKT

Gepostet:
12.03.2012 16:44

   
let xs=[1,2,3,4]
let g1 x = (^) x 2
let f1 = (<10)

Mit der linken Seite der Gleichung auswerten und rumprobieren was f2 g2 so für Funktionen sein könnten damit die Gleichung gilt.
Zum Seitenanfang    
 
paco89

Gepostet:
12.03.2012 21:23

   
achso, und ich dachte zuerst man müsste mit den definitionen von map und filter auf die lösung kommen.
Zum Seitenanfang