Может кто-нибудь помочь мне объяснить, почему у меня есть синтаксическая ошибка на этой строке: let wordMap = StringMap.empty
? Это содержится в файле .mll. Модуль StringMap определен выше.Ошибка синтаксиса OCaml в Parser
let lexbuf = Lexing.from_channel stdin in
let wordlist =
let rec next l = match token lexbuf with
EOF -> l
| Word(s) -> next (s :: l)
in next []
let wordMap = StringMap.empty in
let wcList = StringMap.fold (fun word count l -> (string_of_int count^" "^word) :: l) wordMap [] in
List.iter print_endline wcList;;
Я знаю, что это ничего не печатает, это просто для тестирования.
Я не включил свой полный код. На самом деле у меня есть после слова Word, но я не был уверен, что это было необходимо. Пожалуйста, проверьте код, который я изменил, он все равно дает мне синтаксическую ошибку! – jstnchng
Вам также нужно 'in' после' wordlist'. Не только после 'wordMap'. –
Я пробовал это раньше, и это сработало, просто хотелось посмотреть, есть ли альтернативы/понять причину синтаксической ошибки. Еще раз спасибо Джеффри. – jstnchng