Tôi đã nhìn thấy mã này biên dịch mà không có lỗi và tôi không thể nói nếu là một lỗi hoặc nếu dự kiến của nó.Chỉ định loại tham số không được trình biên dịch thực thi - đây có phải là lỗi hoặc được mong đợi không?
type alias Foo = List
vs
type alias Foo = List String
và không chỉ với List
. Các loại công đoàn tùy chỉnh cũng được cho phép. Ví dụ:
type State value = Valid value | Invalid value
type alias Model1 =
{ someField : State String } -- i would say this is normal. State is a string..
type alias Model2 =
{ someField : State } -- this doesn't look right.
và cũng có chức năng được phép
function1 : List String -> Int
function1 aListOfStrings =
1
function2 : List -> Int
function2 whatisThisNow =
1
Nhưng nếu được mong đợi - cách lập luận về nó? Tôi không thể quấn quanh đầu mình. Chơi với nó here.
Ví dụ đầu tiên có vẻ ổn với tôi: nó sẽ cho phép thực hiện một phần ứng dụng loại chức năng. Nhưng hai người khác thực sự trông giống như một cái gì đó mà nên được hạn chế (vì không có giá trị mà loại là một loại chức năng). –
Điều này có vẻ khó hiểu. Bạn có thể sẽ nhận được nhiều phản hồi hơn nếu bạn hỏi về Slack mặc dù: http://elmlang.herokuapp.com/ – hkgumbs