Я запустил дружественное руководство по 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.
указывает на тот факт, что оператор -> в выражении 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 }}
Может кто-нибудь помочь мне понять, что я пропустил?
спасибо за любой ответ!