SafariBookOnline에서 Richard Cook이 만든 비디오를보고있었습니다. 그는 Haskell과 함께 명령 행 응용 프로그램을 작성합니다. 이 비디오에서는 명령 줄 인수를 구문 분석하는 프로그램을 작성하는 동안 몇 가지 기본 개념을 설명합니다.오류 : "optlse-applicative 라이브러리의 범위를 벗어나는 변수 (<>)"
나는 하스켈 아주 새로운 오전, 나는이 코드가 작동하지 않는 이유를 알아낼 수 없습니다 :
이dataPathParser :: Parser FilePath
dataPathParser = strOption $
value defaultDataPath
<> long "data-path"
<> short 'p'
<> metavar "DATAPATH"
<> help ("path to data file (default " ++ defaultDataPath ++ ")")
이 코드에서 잘 작동하지 않습니다 : 실제로
itemDescriptionValueParser :: Parser String
itemDescriptionValueParser =
strOption (long "desc" <> short 'd' <> metavar "DESCRIPTION" <> help "description")
그리고, 사방, 나는 컴파일러가 저를 알려주는 오류가 발생했습니다 "> <"쓴 :
• Variable not in scope:
(<>) :: Mod f5 a5 -> Mod f4 a4 -> Mod ArgumentFields ItemIndex
• Perhaps you meant one of these:
‘<$>’ (imported from Options.Applicative),
‘<*>’ (imported from Options.Applicative),
‘<|>’ (imported from Options.Applicative)
내가 가진 문제는 아마도 GHC와 Optparse-applicative의 버전의 차이 때문일 것입니다. 나는 최신 것들을 사용한다. LTS 하스켈 9.12 : 0.13.2.0.
하지만 저는 아주 새로 워서 Richard Cook 코드를 다시 작성하는 방법을 알 수 없습니다.
어떤 도움을 주셔서 감사합니다. 사전에
감사합니다, 알렉스
고마워요! 그것은 당신에게 사소한 것처럼 보일지 모르지만 나는 하스켈에서 시작하고 있으며, 코드에서의 문제에 대해 생각했습니다. 다시 한 번 감사드립니다! –
@Alexk 그래, 이건 분명하지 않다. 예는 optparse-applicative의 이전 버전에 대해 작성된 것으로 보이는데,'(<>) '를 내보내었지만 이해가 안되는 이유로 변경되었습니다 : https://github.com/pcapriotti/optparse - 적용/문제/224 – melpomene