Итак, я делаю ti c -ta c -очень игру в Erlang, и она продолжает выдавать синтаксическую ошибку, и я не знаю почему. Это происходит в функции, чтобы проверить, выиграл ли Х. Вот код:
checkX(["xxx" | _]) -> true;
checkX([_ | ["xxx" | _]]) -> true;
checkX([_ | [_ | ["xxx" | _]]]) -> true;
checkX(Board) ->
if
xy(Board, {0, 0}) == 120 and xy(Board, {0, 1}) == 120 and xy(Board, {0, 2}) == 120 -> true;
xy(Board, {1, 0}) == 120 and xy(Board, {1, 1}) == 120 and xy(Board, {1, 2}) == 120 -> true;
xy(Board, {2, 0}) == 120 and xy(Board, {2, 1}) == 120 and xy(Board, {2, 2}) == 120 -> true;
xy(Board, {0, 0}) == 120 and xy(Board, {1, 1}) == 120 and xy(Board, {2, 2}) == 120 -> true;
xy(Board, {2, 0}) == 120 and xy(Board, {1, 1}) == 120 and xy(Board, {0, 2}) == 120 -> true;
true -> false
end.
(xy/2
- это функция, которая берет доску (которая представляет собой список строк) и кортеж и возвращает символ в позиции в кортеже.) эта ошибка при компиляции:
board.erl:68: syntax error before '=='
(строка 68 - первое условие в операторе if.)
Кто-нибудь знает, почему это так?