느릅나무 1일차
2951 단어 elmfunctionalwebdev
함수형 프로그래밍으로 전환하는 데 있어 가장 어려운 부분은 결과로 평가되는 표현식이 되는 모든 것에 대해 머리를 감싸는 것입니다.
조건부
예를 들어 조건문의 개념을 생각해 보십시오. Javascript 영역에서 조건문은 명령문이지만 Elm에서는 조건문이 표현식입니다. 이는 Elm의 조건문이 값으로 확인(평가?)되어야 하므로
else
블록도 있어야 함을 의미합니다. 어떤 의미에서 Richard Feldman이 설명했듯이 elm의 조건은 Javascript의 삼항 연산자로 더 잘 생각됩니다. 조건은 표현식이고 값으로 평가되어야 하므로 else
블록을 정의해야 합니다.따라서 Elm의 이 코드 블록은 다음과 같습니다.
pluralise singular plural quantity =
if quantity == 1 then
singular
else
plural
JS에서 이것은 동일합니다.
const pluralize = (singular, plural, quantity) => quantity === 1 ? singular : plural;
그러나 동일한 결과를 달성하더라도 이것과 정확히 동일하지는 않습니다.
const pluralize = (singular, plural, quantity) => {
if (quantity === 1) return singular;
return plural;
};
위의 코드에서
else
블록을 생략할 수 있기 때문에 코드는 여전히 컴파일되고 나중에 런타임 예외가 발생합니다. Elm은 런타임 예외에 눈살을 찌푸립니다. 그것은 그 가능성을 허용하지 않습니다.괄호
Elm에서 괄호의 역할은 흥미롭습니다. 여기에서는 Richard Feldman을 인용하겠습니다.
Parenthesis disambiguate between nested expressions.
Javascript에서 괄호는 모호함을 없애는 데 사용할 수 있지만 함수 호출, 함수 생성, 루프 및 if 문에 대한 조건부 등을 비롯한 다른 목적으로도 사용되기 때문에 흥미롭습니다.
Elm에서는 Math에서 수행하는 작업을 수행합니다. 중첩된 표현식 간의 모호성을 제거합니다.
어제는 여기까지입니다. 오늘 엘름에서 배운 내용은 나중에 쓰겠습니다.
Reference
이 문제에 관하여(느릅나무 1일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dialaeke/day-1-of-elm-2jjl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)