Что означает синтаксическая ошибка: ожидаемый оператор в caml?

Итак, я писал свой код, чтобы сделать определенный цикл, но я получил эту ошибку при его запуске и не понимаю, почему... Может кто-нибудь объяснить мне, в чем проблема, пожалуйста.

for k = 0 to 10 do
for i = 0 to 10 do (let a = ref 0 ; a := !a + k*i mod 17) done ;
!a ;
done ;;

А тут сообщение об ошибке:

# for k = 0 to 10 do
Line 4, characters 57-58:
4 |  for i = 0 to 10 do (let a = ref 0 ; a := !a + k*i mod 17); done ;
                                                         ^
Error: Syntax error: operator expected.

person charles_mld    schedule 05.04.2021    source источник


Ответы (1)


Конечно, это не очень информативное сообщение об ошибке. Однако ваша проблема в том, что у вас есть let без обработки in. За исключением самого внешнего уровня модуля, каждому let должен соответствовать in.

Вы можете изменить let a = ref 0 ; на let a = ref 0 in и должны продвинуться немного дальше.

Здесь есть еще какие-то проблемы, но это ваша непосредственная проблема, я думаю.

person Jeffrey Scofield    schedule 05.04.2021
comment
Спасибо за ответ, я так и подозревал. - person charles_mld; 06.04.2021