Gepostet: |
Tic Tac Toe bräucht bischen Hilfe | ||||||||||
Hiho, um mal meine derzeitigen Kentnisse zu checken hab ich mir überlegt eifnach mal Tic Tac Toe zu basteln. Nun hab ich nen Problem bei meiner Ausgabefunktion was ich nicht verstehe :) printField (x:y:z:_) = do Aufruf: printField ["123", "456", "789"] Erwartete Ausgabe: ______ |1|2|3| |4|5|6| |7|8|9| ______ Bekomme aber nen Typfehler: <interactive>:1:12: Couldn't match expected type `[Char]' against inferred type `Char' Expected type: [[Char]] Inferred type: [Char] In the expression: "123" In the first argument of `printField', namely `["123", "456", "789"]' Hab mir auch mal mithilfe von :t den Typ der Funktion ausgeben lassen und der ist nicht das was ich erwartet habe und da liegt denke ich auch mein Problem. Erwartet habe ich printField :: [[Char]] -> IO () gekommen ist printField :: [[[Char]]] -> IO () Warum istd as so und wie behebe ich das :)? mfg |
|||||||||||
Zum Seitenanfang | ICQ | ||||||||||
Gepostet: |
|||||||||||
Hallo, x, y, z sind bei dir Strings, d.h. printLine bekommt immer einen String übergeben. Der wird durch Musteranpassung wieder zerlegt in a, b, c, die nun jeweils Chars sind. Auf der rechten Seite versuchst du dann also immer abwechselnd String mit Char mit String mit Char etc. zu verknüfen. (++) ist aber nur für die Verknüpfung von String mit String vorgesehen. Die Lösung ist also die Chars a, b, c auf der rechten Seite jeweils wieder in einen String umzuwandeln, und zwar durch eckige Klammern darum, also bspw. [a]. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
So ich habs nach einigen weiteren Problemen geschafft :) Danke für deine Hilfe und ich hätte noch eine Bitte... Könnte da evtl. wer gegenlesen und mir nen paar Tipps geben was man im allgemeinen besser lösen könnte und halt so Stilkritik.module TicTacToe where |
|||||||||||
Zum Seitenanfang | ICQ | ||||||||||