Talk:Hitchhikers guide to Haskell
Add topicCode Indentation:[edit]
Haskell code should be indented using the <haskell> tag:
http://www.haskell.org/haskellwiki/HaskellWiki:Syntax_highlighting
This also allows for proper cut and paste properties.
P.S. I am really enjoying this article! It provides a very nice practical introduction to Haskell. Thanks! Mforbes 10:08, 17 April 2006 (UTC)
Problems[edit]
When I try to compile, or load into ghci, the following code I get get this error:
cd-fit.hs:8:13: No instance for (Text.Parsec.Prim.Stream s m Char) arising from a use of `many' at cd-fit.hs:8:13-27 Possible fix: add an instance declaration for (Text.Parsec.Prim.Stream s m Char) In a stmt of a 'do' expression: dirs <- many dirAndSize In the expression: do dirs <- many dirAndSize eof return dirs In the definition of `parseInput': parseInput = do dirs <- many dirAndSize eof return dirs Failed, modules loaded: none.
And I panic.
Code:
module Main where
import Text.ParserCombinators.Parsec
data Dir = Dir Int String deriving Show
parseInput =
do dirs <- many dirAndSize
eof
return dirs
dirAndSize =
do size <- many1 digit
spaces
dir_name <- anyChar `manyTill` newline
return (Dir (read size) dir_name)
main = do input <- getContents
putStrLn $ "DEBUG: got input " ++ input
-- compute solution and print it
/Liem
Solution[edit]
I solved the above problem by adding a signature to one function:
parseInput :: Parser [Dir]
parseInput = ...
If someone explained why the signature is required, I could die happy.
Mgm7734 23:29, 30 July 2011 (UTC)
Its because of the Monomorphism_restriction
Knapsack problem?[edit]
Surely this is actually an example of bin packing? No?