Är fortfarande lite lost på vissa delar av Haskell. <b>case parse getLine of</b> <b>>Du menar väl <b>case parse line of</b> eftersom du hämtar line på raden före?</b> Indragen är viktiga. De används av parsern för att den skall veta när den skall tolka in ett semikolon eller en krullparentes. Då börjar det klarna. Hör inte riktigt hit, men läser du kompilatorkonstruktion (http://www.cs.chalmers.se/Cs/Grundutb/Kurser/komp/2005/)? Har pluggat datavetenskap på GU i ett par år och jag blev klar i våras. Jag var antagen till Kompilatorkonstruktion men jag reggade mig aldrig eftersom jag inte trodde att jag skulle hinna med labbarna medan jag sökte en massa jobb. Jag anade att du labbade i och med JVM-spec-varningen. Labbarna i kursen verkar väldigt intressanta, men tidsödande. Jag har också pluggat datavetenskap på GU under ett par år (har 75 p i ämnet) och läste bl.a. kompilatorkonstruktion.Nästlade och efterföljande case i Haskell?
Låt säga att jag gör något i stil med
doSomething :: X -> IO ()
doSomething x = line <- getLine
case parse getLine of
Just Exit
...
Nothing
Så kommer jag på att jag vill ha en case i denna, antingen i den andra case:n eller utanför. Kan jag då göra så här:
doSomething x = line <- getLine
case ... of
y
z
...
case parse getLine of
Just Exit
...
Nothing
resp.
doSomething x = line <- getLine
case parse getLine of
Just Exit
case ... of
y
z
...
Nothing
?Sv: Nästlade och efterföljande case i Haskell?
Du menar väl <b>case parse line of</b> eftersom du hämtar line på raden före?
För att svara på frågan... Ja, man kan ha nästlade case i Haskell. Det är som vanligt indrag eller den utförliga syntaxen (med { } och ;) som gäller för att visa vad som hör ihop:
<code>
x = case y of
A => ...
B => case z of
C => ...
D => ...
E => ...
</code>Sv:Nästlade och efterföljande case i Haskell?
Ja, naturligtvis. Skrev koden "fritt".
Å fan... Den går alltså helt och hållet efter indragen?
Det var något jag hade missat, jag körde på på det sättet som gav snyggast kod...
Men då så, nu tror jag att jag hajar det mesta. Det är lite svårt att veta vad som är del av språket och vad någon har definierat bara.Sv: Nästlade och efterföljande case i Haskell?
Två tips på sidor om Haskell:
http://haskell.org/ - Språkets officiella webbplats
http://zvon.org/other/haskell/Outputglobal/index.html - Referens till funktioner och moduler (del av webbplats med mycket olika referenser)Sv:Nästlade och efterföljande case i Haskell?
Första sidan känner jag ju till, men tycker den är ovanligt krånglig att hitta i (då ska ni iofs se specen till JVM- puuuh!)
Den andra får vi lägga på minnet!
Tackar för tipsen!Sv: Nästlade och efterföljande case i Haskell?
Sv: Nästlade och efterföljande case i Haskell?
Sv:Nästlade och efterföljande case i Haskell?