0

haskellでXMLファイルを解析するためのHXTに関するフレンドリーなチュートリアルチュートリアルを開始しました。

チュートリアルの最初のページでは、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 }}

誰かが私が見逃したものを理解するのを手伝ってくれますか?

返信ありがとうございます!

4

1 に答える 1

1

入れるのを覚えましたか

{-# LANGUAGE Arrows, NoMonomorphismRestriction #-}
import Text.XML.HXT.Core

ファイルの先頭に?

于 2012-03-14T23:06:16.680 に答える