2012-03-14 20 views
0

私はhaskellでXMLファイルを解析するためにフレンドリーチュートリアルtutorial on HXTを開始しました。シンプルな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 }} 

一行にこのすべてを書くように誰もが私が見逃しているものを理解するのを助けることができますか?

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

答えて

1

あなたは、ファイルの先頭に

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

を置くことを覚えていましたか?

+0

ああ!これらの行で動作します、ありがとう –

関連する問題