如何在简单的HXT功能中修复此问题?
-
14-12-2019 - |
题
我已经开始了友好的教程关于hxt 解析XML文件的教程与haskell。
在教程的第一页中,我们尝试从XML文件中检索访客。并且有以下功能。
data Guest = Guest {firstName, lastName :: String}
deriving (Show, Eq)
getGuest = deep (isElem >>> hasName "guest") >>>
proc x -> do
fname <- getText <<< getChildren <<< deep (hasName "fname") -< x
lname <- getText <<< getChildren <<< deep (hasName "lname") -< x
returnA -< Guest {firstName = fname, lastName = lname}
.
但是当我尝试在解释器ghci
中加载文件时。我仍然收到此错误:
Prelude> :l hxt_tuto.hs
hxt_tuto.hs:15:37: parse error on input `->'
Failed, modules loaded: none.
.
指向Expression proc x -> do
中的操作员 - > 具有解析错误,
没有帮助,我尝试了许多修改。就像在单行中写下所有这些
getGuest2 = deep (isElem >>> hasName "guest") >>> proc x -> do { fname <- getText <<< getChildren <<< deep (hasName "fname") -< x; lname <- getText <<< getChildren <<< deep (hasName "lname") -< x; returnA -< Guest {firstName = fname, lastName = lname }}
.
可以帮助我理解我错过了什么吗?
感谢任何回复!
解决方案
你还记得把
{-# LANGUAGE Arrows, NoMonomorphismRestriction #-}
import Text.XML.HXT.Core
.
在文件顶部?
不隶属于 StackOverflow