하스켈에서 Arrows에 대해 배우려고합니다. 따라서 XML 용 화살표 기반 HXT 라이브러리로 간단한 애플리케이션을 작성하고 있습니다. HXT 위키 및 자습서의 예는 기능 유형 서명을 보류합니다. 그러나, 나는 타입을 아주 좋아하고 그것을 사용하는 방법을 찾으려고 노력하고있다. 이것은 내가 걸림돌을 만난 곳입니다. 나는 그들이 다음과 같은 서명을 할당해야합니다 그림화살표/HXT 및 유형 서명
readXml str = runX (readString [withValidate no] str)
atTag tag = deep (isElem >>> hasName tag)
:이 기능을 감안할 때 나는 등이 함께 사용하여 화살표 구문 후크하려고
readXml ∷ String → IO [XmlTree]
atTag ∷ ArrowXml a ⇒ String → a XmlTree XmlTree
그러나
parseItem = proc str -> do
desc <- text <<< atTag "description" <<< arr readXml -< str
...
을, 내 타입 서명이 맞다면 (GHC는 불평하지 않았다), XmlTree
을 꺼내고로 돌아 가기 위해 모나드 구문과 화살표 구문을 결합하는 방법이 필요하다..
진행 방법이 확실하지 않습니다. 누구나 통찰력이 있습니까? readXml
의 정의에 사용 runX
혼란 스럽습니다. 시나리오 1에서 readXml은 실제로 화살표가 아니라 화살표를 반환하는 함수입니다. 화살표 구문과 같이 이것을 어떻게 사용할 수 있습니까? – providence
코드를 복사 할 때'- <'를 삭제하는 것을 잊어 버렸습니다. 지금은 분명해야합니다. – dflemstr