Elm Core Language And The Elm Architecture

2016/12/03

Core Language

Functions with If Expressions

> over9000 powerLevel = \
|   if powerLevel > 9000 then "It's over 9000!!!" else "meh"
<function>

> over9000 42
"meh"

> over9000 100000
"It's over 9000!!!"

이 부분에서 고생을 했다. 정확하게 따라했어야 했는데,

|   if powerLevel > 9000 then "It's over 9000!!!" else

if 앞에 공백을 빼먹고 했더니 자꾸 오류가 났다.

-- SYNTAX PROBLEM -------------------------------------------- repl-temp-000.elm

The = operator is reserved for defining variables. Maybe you want == instead? Or
maybe you are defining a variable, but there is whitespace before it?

3|   over a = 
            ^
Maybe <http://elm-lang.org/docs/syntax> can help you figure it out.

whitespace에 대한 언급이 있었는데, 제대로 읽지 않아서 고생을 했다. 0.18.0 버젼과 튜토리얼 버젼이 다른가 라고 생각을…어쨌든 공백을 주고하니까 function이 잘 생성됐다.

Records

> jeong = { name = "Seokwon", age = 27 }
{ age = 27, name = "Seokwon" }

근데 이 부분에서 Jeong = { name = "Seokwon", age = 27 } 이런식으로 시작을 대문자로 했더니 오류가 발생했다.

-- SYNTAX PROBLEM -------------------------------------------- repl-temp-000.elm

I need whitespace, but got stuck on what looks like a new declaration. You are
either missing some stuff in the declaration above or just need to add some
spaces here:

4| t_s_o_l = ()
   ^
I am looking for one of the following things:

    whitespace

아직 정확하게 원인을 모르겠다.

Comparing Records and Objects

JavaScript의 Object와 Elm의 Records는 차이가 존재한다.

  • You cannot ask for a field that does not exist.
  • No field will ever be undefined or null.
  • You cannot create recursive records with a this or self keyword.

The Elm Architecture

느릅 나무 ! Redux에도 영향을 줬다. 느릅 나무를 배워서 당장 어플리케이션에 적용할 수 없더라도, 많은 부분을 배울 수 있다!

The Basic Pattern

  • Model - 애플리케이션의 상태
  • Update - 상태를 업데이트 하는 방법
  • View - HTML같은 뷰

세 부분으로 나눌 수 있다.

Post Directory