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 nächste Seite

Landei

Gepostet:
28.02.2012 08:32

   
Ein paar kleinere Punkte:

Wenn du schon die verwendeten Funktionen bei imports auflistest, kannst du sie auch gleich explizit importieren:


import Data.Char -- isLetter, isNumber
-->
import Data.Char (isLetter, isNumber)


Man schreibt datas == [] besser als null datas (dann braucht der Typ nicht mal in Eq zu sein)

Dann sind die Sortier-Funktionen gleich auf mehreren Ebenen überflüssig:
- Es gibt schon ein sort oder sortBy
- groesserGleich1 ist unnötig, wenn man kleiner1 hat, da man dann beide Teillisten über partition erhalten kann
- die Vergleichsfunktionen, die die Ord-Instanz für Listen liefert, entsprechen schon deiner gewünschten Ordnung, wenn man vorher noch den Längen-Check durchführt

Den Rest habe ich mir noch nicht so genau angeschaut, sehe aber auch schon einige Kleinigkeiten. Insgesamt verwendest du sehr viel Funktionen mit IO in der Signatur, und auch ziemlich viele ifs. Mal sehen, ob man das besser machen kann.

Aber ich will nicht zu viel rummeckern, das jetzige Programm ist schon eine ordentliche Leistung. Wenn ich Zeit habe, versuche ich mich mal selbst dran...
Zum Seitenanfang    
 
IKT

Gepostet:
28.02.2012 10:29

   
>Dann sind die Sortier-Funktionen gleich auf mehreren Ebenen überflüssig: [...]

Ok, danke, also einfach nur \"sortBy compare ...\".

>Man schreibt datas == [] besser als null datas (dann braucht der Typ nicht mal in Eq zu sein)

Aber null nutzt doch auch den Vergleich mit == []:

null :: [a] -> Bool
null [] = True
null (_:_) = False

>Den Rest habe ich mir noch nicht so genau angeschaut, sehe aber auch schon einige Kleinigkeiten. Insgesamt verwendest du sehr viel Funktionen mit IO in der Signatur, und auch ziemlich viele ifs. Mal sehen, ob man das besser machen kann.

Ja, das habe ich mir auch schon gedacht.
Zu viel meckern gibts nicht.. und ich würde auch sehr gerne sehen wie du u.a. obriges eventuell verbessern würdest / wie du es selbst geschrieben hättest, wenn du Zeit findest :)
Zum Seitenanfang    
 
Landei

Gepostet:
28.02.2012 15:33

   
Nein, die Funktion null verwendet nur Pattern Matching und kein ==. Beweis:


[(+),(-)] == []

<interactive>:1:11:
No instance for (Eq (a0 -> a0 -> a0))
arising from a use of `==\'
Possible fix: add an instance declaration for (Eq (a0 -> a0 -> a0))
In the expression: [(+), (-)] == []
In an equation for `it\': it = [(+), (-)] == []

null [(+),(-)]
False
Zum Seitenanfang    
 
IKT

Gepostet:
29.02.2012 16:56

   
ah ok, danke

ich werd mich mal an der GUI probieren
Zum Seitenanfang    
 
Konrad

Gepostet:
01.03.2012 15:24

   
Hallo,

war letzte Tage weg und war leider nicht auf der Seite ..

danke für großzügige Hilfe und natürlich für die Mühe .. ich werde mit anderen mal versuchen erstmal alles zu verstehen. das ist jetzt die Hauptsache und schauen wie wir dann weiter kommen!!

ich meld mich..
Zum Seitenanfang    
 
Konrad

Gepostet:
01.03.2012 15:28

   
doppelpost
Zum Seitenanfang    
 
IKT

Gepostet:
02.03.2012 13:01

   
die GUI: (verstanden habe ich nicht alles, allen voran ist das aus mehreren Beispielen zusammenkopiert, abgeändert, geguckt obs wie gewünscht aussieht, abgeändert usw.)

zur Speicherung habe ich mich eines ListStore a \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s bedient, wenn man z.B. diese Art eines Modell \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s auswählt um darauf Daten zu verarbeiten, wird scheinbar automatisch das ModelAndView-Konzept angewandt.
( http://hackage.haskell.org/packages/archive/gtk/0.11.0/doc/html/Graphics-UI-Gtk-ModelView-TreeView.html )

Zu dem ListStore a habe ich dann noch eine Frage:
( http://hackage.haskell.org/packages/archive/gtk/0.11.0/doc/html/Graphics-UI-Gtk-ModelView-ListStore.html#t:ListStore )
Hiergibt es ja mehrer Funktionen mit denen man auf dem ListStore rumrechnet, u.a. habe ich auch

listStoreSetValue :: ListStore a -> Int -> a -> IO ()

benutzt - entspricht es aber überhaupt dem Sinn der funktionalen Programmierung?
Denn bei listStoreSetValue z.B. verändert man nur einen Wert im Store, die Funktion selber gibt mir aber nicht den neuen (veränderten) Store zurück, sondern ich nehme den alten (nun veränderten) und mache damit weiter.



Zum Seitenanfang    
 
Landei

Gepostet:
04.03.2012 13:33

   
Ich scheitere schon beim Installieren von wxHaskell, der ganze Abend ist gestern dafür draufgegangen. Ich habe irgendwie eine wxWidget-Version mit ASCII erwischt und sehe im Haskell-Beispiel jeweils nur die ersten Buchstaben. Unter Windows ist das echt ein Krampf...
Zum Seitenanfang    
 
IKT

Gepostet:
04.03.2012 14:04

   
Soweit ich weiß habe ich wxHaskell nicht installiert, ich habe Gtk2Hs benutzt und mich an diese Anleitung gehalten:
http://www.haskell.org/haskellwiki/Gtk2Hs/Windows
Aber ja, das ist bei mir jetzt auch der 3. Anlauf in dem es endlich mal geklappt hat.. bei Fragen zu der obigen Anleitung kann ich eventuell helfenm, z.B. ist es bei Schritt 1.4) wichtig, dass man das verlinkte GTK/Glade bundle nicht in einen Pfad installiert, der Leerzeichen enthält, also z.B. nicht C:\\Program Files\\Gtk sondern C:\\Gtk.
Zum Seitenanfang    
 
Konrad

Gepostet:
04.03.2012 22:28

   
ich hab Problem bei Schritt 1.5
Zum Seitenanfang    
 

vorherige Seite 1 2 3 nächste Seite