2014-04-19 7 views
3

나는 꽤 오랫동안 하스켈에서 떨어져 있었다. 지금 "기능 언어를 구현하는 튜토리얼"을 통해 속도를 높이고 후드에서 진행되는 작업에 대해 자세히 알아볼 수 있습니다. "토큰 (tokens)"이 여기에 어떻게 들어 맞을지 모르겠다. 형식 서명은이 함수가 함수와 2 개의 파서를 사용하고 파서를 반환한다고 분명하게 말합니다. "토큰"은 목록 이해력이 목록 이해력에 사용되는 결과인가? 감사.간단한 함수에서 타입 혼란

pThen :: (a -> b -> c) -> Parser a -> Parser b -> Parser c 
pThen combine p1 p2 tokens = 
    [(combine v1 v2, tokens2) | (v1, tokens1) <- p1 tokens, 
           (v2, tokens2) <- p2 tokens1] 

편집 : 아래의 유용한 답변을 읽은 후에이 간단한 예에서 조금 더 일찍 알아 챘습니다. 장래에 다른 사람에게 도움이되는 경우에 대비하여 더욱 분명합니다.

pAlt :: Parser a -> Parser a -> Parser a  

pAlt :: Parser a -> Parser a -> Parser a 
pAlt p1 p2 toks = (p1 toks) ++ (p2 toks) 

답변

5

Parser 함수 타입 타입 동의어 자체이며, tokens는 결과 Parser의 인수이다.

+0

감사합니다. 꽤 분명해. – MFlamer

관련 문제