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 3 4 5 6 nächste Seite

Jacke

Gepostet:
26.01.2005 17:01

   
also so weit bin ich erstmal...die show_funktion funktioniert jetzt auch...
wegen den schlüsselwörtern mach ich mir noch einen kopf
ich hab noch 2funktionen mit büchern geschrieben...ist objektorientierter...;)
und man kann damit dann auch show_book besser testen...
show_book ruft man auf mit :
show_book book...
bei den typen hab ich abgeändert das man jetzt ne liste von autoren eingeben kann und das der preis nen Float ist und das jahr nen Int...damit man die typen nicht umwandeln muß...so wie das dein prof wollte...
type Author=(String,[String])
type Titel=(String,String)
type Publisher=(String,String)
type Year=(String,Int)
type Price=(String,Float)
type Booklist=[(Author,Titel,Publisher,Year,Price)]

exampleList::Booklist
exampleList=new_entry (new_entry [] book) book2

book::(Author,Titel,Publisher,Year,Price)
book=(("author",[("Simon Thomson"),("tufftuff")]),("titel","The craft of functional Programming"),("publisher","Addison-Wesley"),("year",1999),("price",39.95))

book2::(Author,Titel,Publisher,Year,Price)
book2=(("author",[("Dan Gookin")]),("titel","Haskell für Dummies"),("publisher","MitP"),("year",1998),("price",99.99))

new_entry::Booklist->(Author,Titel,Publisher,Year,Price)->Booklist
new_entry list ((author,a),(titel,t),(publisher,pub),(year,y),(price,pr)) =[(("author",a),("titel",t),("publisher",pub),("year",y),("price",pr))]++list

searchTitel::Booklist->String->[String]
searchTitel eList s=[(t)|((author,a),(titel,t),(publisher,pub),(year,y),(price,pr))<-eList,substr s t]

substr :: String -> String -> Bool
substr [] _ = True
substr (_:_) [] = False
substr (x:xs) (y:ys) = substr (x:xs) ys || f_substr (x:xs) (y:ys)
where
f_substr [] _ = True
f_substr (_:_) [] = False
f_substr (x:xs) (y:ys) = (x==y) && f_substr xs ys

allAuthors :: Booklist->[Author]
allAuthors eList=[(a,author)|((a,author),(t,titel),(p,publisher),(y,year),(pr,price))<-eList]

num_List::Booklist->[(Int,Titel)]
num_List eList= zip [1..length titels] titels
where titels=[(titel)|(author,titel,publisher,year,price)<-eList]


--search_book::Booklist->String->(Author,Titel,Publisher,Year,Price)
--search_book eList t=[((a,author),(ti,titel),(p,publisher),(y,year),(pr,price))|((a,author),(ti,titel),(p,publisher),(y,year),(pr, price))<-eList,substr t titel]

show_s::[(String)]->IO()
show_s x = sequence_(map putStrLn (x))

show_book::(Author,Titel,Publisher,Year,Price)-> IO()
show_book ((author,a),(titel,t),(publisher,pub),(year,y),(price,pr))=show_s x
where x=(a++s)
s=t:pub:( show y):(show pr):[]


so und dann hab ich noch ne hilfsfunktion show_s geschrieben...mit der man Listen von strings auf verschiedenen zeilen ausgeben kann...dafür benutz ich sequence_ die funktion gibt es nämlich schon damit kann man von [IO()] ->IO()
achso und noch was das show in show_book benutz ich um die Int s in nen string umzuwandeln...
kuck am besten nochmal alles durch und frag mich wenn du was nicht verstehst...

gruß jacke
Zum Seitenanfang    
 
Jacke

Gepostet:
26.01.2005 19:20

   
also ich hab jetzt ne idee mit den schlüsselwörtern...folgendes wenn ich
data Author=Author [String]
schreibe und dann das so benutze
a1::Author
a1=((Author [("Dan Gookin"),("Achim")])
wäre das ok..???.
dann ist das Schlüsselwort zwar nicht durch nen Komma vom rest getrennt aber man könnte es wenigstens so verwenden???
kannst du deinen Prof das mal mailen ob ihm das so reichen würde??? am besten ganz schnell...das noch abzuändern wäre recht einfach...;)
ich hab meinen tutor aus der uni die frage zu den schlüsselwörtern auch mal geschickt...
hoffentlich meldet er sich bald...

gruß schaky
Zum Seitenanfang    
 
echsel

Gepostet:
26.01.2005 19:29

   
hallo Jakce!

Super, ich sende es sofort und wir werden sehen was er sag

MfG
echsel
Zum Seitenanfang    
 
echsel

Gepostet:
26.01.2005 23:35

   
Hurra!

endlich hat es geklappt Smilie
habe noch ein tipp bekommen:
"Man kann ein neues Element x am Anfang der Liste xs mit [x]++xs hinzufügen oder aber die Form x:xs verwenden."
aber sowieso ist richtig

MfG
echsel
Zum Seitenanfang    
 
Jacke

Gepostet:
27.01.2005 09:19

   
ja das weiß ich ja...das mit dem doppelpunkt hab ich ja gemacht...
kann man die schlüsselwörter nun so verwenden?

wenn ja dann mach ich mich gleich ans ändern und dann sind wir fertig...

gruß jacke
Zum Seitenanfang    
 
Jacke

Gepostet:
28.01.2005 09:40

   
ich dachte des prog muß ganz schnall fertig werden warum postest du denn nich???
Zum Seitenanfang    
 
echsel

Gepostet:
28.01.2005 15:19

   
Hey Jacke,

Mein rechner ist Tot :/ - eigentlich Windows. Muss System neu Instalieren. Aber vorgestern habe ich von meinem beliebsten Prof. bescheid bekommen, dass heute ich ein Testat von Programmierung schreiben muss (Haskel + Prolog):)))
So gesten bin ich nach Plan bis 20Uhr in der Schule und musste mich noch für heute vorbereiten. Aber habe ich ganz gut geschrieben und hoffe an gute Note. Das Testat + Belege (Haskell und Prolog) = Vordiplom :)))
So hatte ich kein Zeit .... aber jetzt instaliere ich Windows neu und geht los :)
Zum Seitenanfang    
 
Jacke

Gepostet:
28.01.2005 16:57

   
also mußt du das prog nicht mehr abgeben...?
Zum Seitenanfang    
 
echsel

Gepostet:
29.01.2005 18:46

   
hallo,

doch muss ich, aber mein rechner funktioniert nicht. HDD ist kaputt :/ Montag muss ich neue Festplatte kaufen. Ich habe aber das Programm gekukt und verstehe letzte Funktion nicht. Aber ich hate zu wenig Zeit. Ich analysiere das noch mall.

MfG
echsel
Zum Seitenanfang    
 
echsel

Gepostet:
30.01.2005 13:49

   
Hallo,

ich weiss nicht warum, aber bei mir Hugs berichtet ein Fehlermeldung

48 - Syntax error in input (unexpected `=')

--38
--search_book::Booklist->String->(Author,Titel,Publisher,Year,Price)
--search_book eList t=[((a,author),(ti,titel),(p,publisher),(y,year),(pr,price))|((a,author),(ti,titel),(p,publisher),(y,year),(pr,price))<-eList,substr t titel]
--41
show_s::[(String)]->IO()
show_s x = sequence_(map putStrLn (x))
--44
show_book::(Author,Titel,Publisher,Year,Price)-> IO()
show_book ((author,a),(titel,t),(publisher,pub),(year,y),(price,pr))=show_s x
where x=(a++s)
s = t:pub:(show y):(show pr):[]


außerdem in Funktion searchTitel schreibst du :
searchTitel eList s=[(t)|((author,a),(titel,t),(......

und schon in allAuthors:
allAuthors eList=[(a,author)|((a,author),(t,titel),(.........

ist die reihenfolge (a,author) oder (author,a) nicht wichtig, oder warum ist das so?

MfG
echsel
Zum Seitenanfang    
 

vorherige Seite 1 2 3 4 5 6 nächste Seite