Мне нравятся сообщения об ошибках в Elm! Это похоже на второй уровень тестирования, который поможет вам оставаться на правильном пути. Я никогда не встречал другого языка с такими подробными и полезными сообщениями.
При изучении нового языка очень полезно, когда вам не нужно бороться, чтобы понять, что пошло не так, когда ваша программа не компилируется. Несколько раз с Python я хотел бросить компьютер, когда он говорил мне, что количество аргументов неверно (обычно я, потому что я забыл себя), но было бы неясно, слишком много или слишком мало аргументов. Вяз, с другой стороны, на самом деле разговаривает с вами как взрослый и пытается помочь вам в правильном направлении.
Detected errors in 1 module. ==================================== ERRORS ==================================== — TYPE MISMATCH — — — — — — — — — — — — — — — — — — — — — — — — ./src/Board.elm The type annotation for `update` does not match its definition. 20│ update : List Cell -> Player -> List Cell ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The type annotation is saying: List Cell -> Player -> List Cell But I am inferring that the definition has this type: List Cell -> Int -> Player -> List Cell
Здесь я точно знаю, чего не хватает и что функция ожидала увидеть. Как будто язык хочет, чтобы вы преуспели!
И даже когда вы делаете что-то глупое, например, устанавливаете себе циклическую зависимость, Elm не будет придурком, он просто вежливо напомнит вам подумать о своем дизайне.
Спасибо, Элм!