Haskell |
| 18.04.2015, 12:26 | Auf diesen Beitrag antworten » | |||||||||||||||
| neuling96 | Haskell Vorweg, ich beschäftige mich zum ersten mal mit Haskell und hier bereits das erste Problem > 0:[1,2,3] [0,1,2,3] Soweit klar > 'a'
'b':['c'])"abc" Aber wieso ergibt das ein String? Ich hätte > 'a'
'b':['c'])[a,b,c] erwartet :t (
(
:: a -> [a] -> [a]Wieso ist der Cons- Operator mehrstellig? |
|||||||||||||||
|
|
||||||||||||||||
| 18.04.2015, 12:28 | Auf diesen Beitrag antworten » | |||||||||||||||
| neuling96 | RE: Haskell da ist vorher was schief gelaufen
|
|||||||||||||||
| 18.04.2015, 13:09 | Auf diesen Beitrag antworten » | |||||||||||||||
| Karlito | Im Prinzip ist ein String nichts anderes als ein char-array... In C zum Beispiel ist ein String ein char-array, was mit dem Zeichen \0 beendet wird. Ich nehme an, dass haskell einfach Char-Array als String interprektiert. Gruß, Karlito |
|||||||||||||||
| 18.04.2015, 15:39 | Auf diesen Beitrag antworten » | |||||||||||||||
| neuling96 | Danke für den Hinweis Wenn ich in den GHCI folgendes eintippe succ :: Int -> Int nimmt er das nicht an. Weißt du wieso nicht? Selbst Funktionen wie f x = x + 1, erst mit let f x = x + 1 wird die Funktion akzeptiert |
|||||||||||||||
| Anzeige | ||||||||||||||||
|
|
||||||||||||||||
| 19.04.2015, 15:45 | Auf diesen Beitrag antworten » | |||||||||||||||
| Karlito | Ghci scheint an dieser stelle einfach etwas anders zu funktionieren. Was Du machen kannst, ist eine Datei anzulegen, in der Du die Funktionen wie in der Lehrveranstaltung definierst. Also beispielsweise:
Das legst du in meinefkt.hs ab und öffnest es in ghci per
Übrigens ist succ bereits in Haskell definiert. Dadurch kommt es zu einem Namenskonflikt:
Ich habe nicht recherchiert wie man den auflösen kann, aber es gibt wohl soetwas wie Scopes. Das Einfachste ist also einfach die Namenskonflikte zu vermeiden. Gruß, Karlito |
|||||||||||||||
| 21.04.2015, 19:16 | Auf diesen Beitrag antworten » | |||||||||||||||
| neuling96 | Besten Dank!! Hat alles funktioniert |
|||||||||||||||
| 14.05.2015, 21:01 | Auf diesen Beitrag antworten » | |||||||||||||||
| neuling96 | foldl :: (a -> b -> a) -> a -> [b] -> a (.) :: (b -> c) -> (a -> b) -> a -> c (.) f g = \x -> f (g x) compose = foldl (.) id was ich hier nicht verstehe ist, dass von der funktion id der typ a->a ist aber in foldl wird nicht (a->a) oder ein wert a erwartet an der stelle id wo genau liegt mein denkfehler? |
|||||||||||||||
|
|
Verwandte Themen
| Die Beliebtesten » |
| Die Größten » |
|
| Die Neuesten » |

'b':['c'])