Коды ниже запрограммирован, чтобы решить результат бумаги рок и ножницы в Haskell, однако терминал выдаст ошибкубумага, рок, и ножницы в Haskell
data Move = Paper | Rock | Scissors
deriving (Eq, Show)
data Result = Win | Draw | Loose
deriving (Eq, Show)
beats :: Move -> Move
beats move = case move of
Paper -> Scissors
Rock -> Paper
Scissors -> Rock
score :: Move -> Move -> Result
score this_move opposing_move
| this_move == beats opposing_move = Win
| this_move == opposing_move = Draw
| otherwise = Loose
здесь сообщение об ошибке от терминала
[1 of 1] Compiling Main (test.hs, interpreted)
test.hs:1:60: parse error on input `data'
Failed, modules loaded: none.
Кто любит рассказывать мне, что в этом плохого? Спасибо XD
Это не причина вашей ошибки, но противоположность 'Win' написана' Lose'. («Свободное» - правильное написание другого слова). – dave4420
Как вы написали здесь, ваш код работает. Какую операционную систему, текстовый редактор и версию ghc вы используете? Кроме того, вы могли бы найти способ поделиться точным файлом, который вы пытаетесь скомпилировать? Возможно, что-то неточно неверно в том, как оно отформатировано, которое не сохранилось при копировании кода здесь. Дополнительным доказательством этого является то, что при копировании кода первая строка не содержит в ней 60 символов, но в сообщении об ошибке говорится, что проблема связана с 60-м символом первой строки. –
Если первая строка не содержит 60 символов, а сообщение об ошибке - противоположное, я понимаю, что использование символа конца строки в формате файла не является ожидаемым компилятором. Тогда файл обязательно заходит из системы Windows, и он не переформатирован для работы на Mac (как Linux). Вот как я это интерпретирую. – zurgl