[Haskell-cafe] First time haskell - parse error!
orclev at gmail.com
Tue Mar 9 18:02:00 EST 2010
Seems like a good time to mention the Maybe monad looks like it would be a
good fit here.
score :: String -> String -> Maybe String
score s  = Nothing
score s g =
if valid 4 g
then let s1 = "Golds "
s2 = show (gold s g)
s3 = ", Silvers "
s4 = show (silver s g)
in Just (s1 ++ s2 ++ s3 ++ s4)
else Just "Bad Guess"
-R. Kyle Murphy
Curiosity was framed, Ignorance killed the cat.
On Tue, Mar 9, 2010 at 17:42, Brent Yorgey <byorgey at seas.upenn.edu> wrote:
> On Tue, Mar 09, 2010 at 08:42:44PM +0100, Sebastian Hungerecker wrote:
> > On 09.03.2010 20:04, boblettoj wrote:
> >> score :: String -> String -> String
> >> score [s]  = false
> >> score [s] [g] =
> >> if valid 4 g
> >> then (s1 ++ s2 ++ s3 ++ s4) where
> >> s1 = "Golds "
> >> s2 = show (gold s g)
> >> s3 = ", Silvers "
> >> s4 = show (silver s g)
> >> else "Bad Guess"
> > Apart from the parse error there is also a type error
> > in your code:
> > When the second argument is empty, you return false
> > although you declared the function to return a String,
> > not a boolean.
> Not quite; data Bool = True | False, and the code uses a lowercase 'f'
> 'false'. Perhaps 'false' is defined as a String somewhere else? A bit
> odd, perhaps, but not necessarily a type error.
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe