Вяз - это язык, основанный на выражениях. У него нет заявлений, потому что у него нет побочных эффектов. Вместо этого он состоит из выражений, которые возвращают значения, связанные с типами, которые проверяются во время компиляции.
Ваш код является синтаксически допустимым выражением, поэтому я не уверен, как вы получили эту конкретную ошибку. Я не могу воспроизвести его непосредственно на верхнем уровне, где выражения не принадлежат, или в функции, где выражения действительно принадлежат, но там я получаю ошибку типа вместо синтаксической ошибки. Вы пропускаете какую-то важную часть вашего кода.
В любом случае, даже если вы правильно поместите это в функцию, это не будет делать то, что вы хотите. Даже тогда есть множество проблем:
Ваш код будет интерпретирован как три аргумента, примененных к функции text
, '1'
, text
и '2'
, поскольку разрыв строки не имеет значения.
'1'
- это символьный литерал, а не строковый литерал. "1"
является строковым литералом.
С чем бы вы ни собирались использовать это, он, скорее всего, ожидает один элемент, а не список элементов.
Правильный способ вернуть два элемента как один - заключить два элемента в родительский элемент, например, в 'span':
module Main exposing (main)
import Html exposing (text, span)
main =
span []
[ text "1"
, text "2"
]
Наконец, я рекомендую вам начать обучение, следуя официальному руководству по вязу . Elm настолько отличается, что метод проб и ошибок, основанный на том, что работает в JavaScript, может привести к разочарованию.