2016-05-25 26 views
38

Xuất phát từ phản ứng, tôi học cách hiểu Elm."! []" Cú pháp mã Elm trong Todomvc có nghĩa là

Trong Todomvc example code, có đoạn mã sau:

-- How we update our Model on a given Msg? 
update : Msg -> Model -> (Model, Cmd Msg) 
update msg model = 
    case msg of 
    NoOp -> 
     model ! []  <-- What is this? 

Những gì tôi (nghĩ tôi) hiểu, là update chức năng mất trong một msg loại Msgmodel loại Model, và trả về một bộ chứa một số ModelCmd Msg.

Nhưng làm cách nào để đọc báo cáo trả lại?

model ! [] 

Tuyên bố này có ý nghĩa gì? trả về danh sách trống "mô hình [cái gì đó]"?
Tôi có bỏ sót điều gì đó trong tài liệu mà điều này được giải thích không? (Googling "elm!" Không đưa tôi đến xa :)

Trả lời

39

Dấu chấm than trong model ! [] chỉ là một hàm ngắn tay cho (model, Cmd.batch []), là loại trả về từ câu lệnh update điển hình. It is defined here

+1

Cảm ơn bạn đã giải thích. Tôi đã đi qua dòng(), mô hình -> Danh sách (Cmd msg) -> (mô hình, Cmd msg) 'khó hiểu, nhưng tôi không thể dịch nó thành' mô hình! [] 'Hy vọng rằng nhiều tài liệu hơn sẽ theo sau. Cảm thấy như một ngôn ngữ đầy hứa hẹn cho đến nay. – wintvelt

+7

Đó là một trong những vấn đề lớn với elm. Làm thế nào người ta sẽ tìm kiếm trên web một dấu chấm than "!"? Tôi đã thử tìm kiếm khoảng mười biến thể của "dấu chấm than elm-lang". Tôi thậm chí còn tìm kiếm "dấu chấm than haskell". Tại sao chúng ta không thể viết '(model, Cmd.batch [])' vì nó là? Nó làm cho nó ít huyền diệu hơn nhiều. Ngay cả khi bạn phải làm cho nó "ít cody", sau đó không nên infix nhà điều hành với một từ được sử dụng như '' someOperator''? Chỉ là một vài suy nghĩ. – abhinav

+11

Bạn có thể sử dụng Tìm Gói Ưa thích của Elm (Truy cập [Elm Packages] (http://package.elm-lang.org/) và nhấp vào [Fancy Search] (http://klaftertief.github.io/elm- tìm kiếm /)) để tìm các chức năng như thế. [Ở đây bạn có thể tìm kiếm trên '!'] (Http://klaftertief.github.io/elm-search/?q=!) Và nó kéo lên đúng chức năng. –

Các vấn đề liên quan