Haskell 靓汤:让基本范例发挥作用

Haskell 靓汤:让基本范例发挥作用,haskell,html-parsing,hxt,Haskell,Html Parsing,Hxt,我正试图让基本的例子开始工作: main=do 文档>css“h3.r a”!“href” mapM_uuu计算机链接 我试着复制这样的例子: module Main (main) where import Text.HandsomeSoup import Text.XML.HXT.Core import Control.Monad main = do doc <- fromUrl "http://www.google.com/search?q=egon+schiele"

我正试图让基本的例子开始工作:

main=do
文档>css“h3.r a”!“href”
mapM_uuu计算机链接
我试着复制这样的例子:

module Main (main) where
import Text.HandsomeSoup
import Text.XML.HXT.Core
import Control.Monad

main = do
    doc <- fromUrl "http://www.google.com/search?q=egon+schiele"
    links <- runX $ doc >>> css "h3.r a" ! "href"
    mapM_ putStrLn links        
主模块(Main),其中
导入Text.HandsomeSoup
导入Text.XML.HXT.Core
进口管制
main=do
文档>css“h3.r a”!“href”
mapM_uuu计算机链接
但是,我得到了以下错误:

$ runhaskell Main.hs

Main.hs:8:21:
    Couldn't match expected type `IOSLA (XIOState ()) XmlTree b0'
                with actual type `hxt-9.3.0.1:Data.Tree.NTree.TypeDefs.NTree
                                    hxt-9.3.0.1:Text.XML.HXT.DOM.TypeDefs.XNode'
    In the first argument of `(>>>)', namely `doc'
    In the second argument of `($)', namely
      `doc >>> css "h3.r a" ! "href"'
    In a stmt of a 'do' block:
      links <- runX $ doc >>> css "h3.r a" ! "href"
$runhaskell Main.hs
Main.hs:8:21:
无法匹配预期的类型'IOSLA(XIOState())XmlTree b0'
实际类型为'hxt-9.3.0.1:Data.Tree.NTree.TypeDefs.NTree
hxt-9.3.0.1:Text.XML.hxt.DOM.TypeDefs.XNode'
在“(>>>)”的第一个参数中,即“doc”
在“($)”的第二个参数中,即
`文档>>>css“h3.r a”!“href”
在“do”块的stmt中:
链接>>css“h3.RA”!“href”

但我似乎真的搞不清楚到底发生了什么。

函数fromUrl的类型为fromUrl::String->IOSArrow XmlTree(NTree XNode)。 所以IOSArrow XmlTree(NTree XNode)不清楚IO操作

最简单的修复方法-改用let语句:

import Text.HandsomeSoup
import Text.XML.HXT.Core

main :: IO ()
main = do
  let doc = fromUrl "http://www.google.com/search?q=egon+schiele"
  links <- runX $ doc >>> css "h3.r a" ! "href"
  mapM_ putStrLn links
import Text.HandsomeSoup
导入Text.XML.HXT.Core
main::IO()
main=do
让doc=fromUrl“http://www.google.com/search?q=egon+希勒“
链接>>css“h3.RA”!“href”
mapM_uuu计算机链接

我仍然从同一行收到一个类型错误。这是为你编译的吗?@user1436026是的,我在OS X和Ubuntu13.10上由gch7.6编译的。你的答案和从7.4升级到ghc 7.6的提示结合起来解决了我的问题:)
import Text.HandsomeSoup
import Text.XML.HXT.Core

main :: IO ()
main = do
  let doc = fromUrl "http://www.google.com/search?q=egon+schiele"
  links <- runX $ doc >>> css "h3.r a" ! "href"
  mapM_ putStrLn links