Я смотрел видео, снятое Ричардом Куком на SafariBookOnline. Он создает приложение командной строки с помощью Haskell. В этом видео он объясняет некоторые основные понятия при написании программы для разбора аргументов командной строки.
Я новичок в Haskell и не могу понять, почему этот код не работает:
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 Haskell 9.12: 0.13.2.0.
Но поскольку я совсем новичок, не могу понять, как переписать код Ричарда Кука.
Буду признателен за любую помощь.
Заранее спасибо, Алекс