Elm- 부분 적용 2일차

오늘은 List와 Partial Application에 대해 알아보았습니다. 목록은 동일한 유형의 요소를 포함할 수 없다는 점을 제외하면 Javascript 배열과 유사합니다. 대괄호가 있는 Javascript 배열과 유사하게 정의됩니다[]. 지루한 것들.

오늘 우리가 배운 흥미로운 것은 부분 적용이었습니다. 부분적으로 적용된 함수는 일부 인수가 생략된 상태로 호출된 함수입니다. 이것은 Javascript, PHP의 상당히 표준적인 문제이며 다른 프로그래밍 언어를 상상합니다. 흥미로운 점은 Elm이 기능적 프로그래밍 언어로서 문제를 다루는 방식입니다.

Javascript 또는 PHP 개발자와 같은 기능적 프로그래밍 학습의 어려움은 다양한 개념의 정신 모델과 실제로 FP에 적용되는 방법 사이의 충돌입니다.

Javascript에서 인수가 생략되면 함수는 그 자리에 기본 인수를 사용합니다. 기본 인수는 undefined[개발자가 지정하지 않는 한]이며 함수는 이 기본 인수로 실행됩니다. 지루한 것들. 예를 들어:

function pluralize(singular, plural, quantity){
  // ...
}

pluralize('boy', 'boys') // the third argument here will be `undefined`.



function pluralize(singular, plural, quantity = 1){
  // ...
}

pluralize('boy', 'boys') // the value 1 will be passed to pluralize as the third argument.


Elm에서는 개념이 완전히 다릅니다. 인수를 생략하면 함수가 부분적으로 실행되고 누락된 인수를 사용하여 평가를 완료하는 다른 함수가 반환됩니다. Elm에서 동일한 예를 살펴보겠습니다.

pluralize singular plural quantity = 
  if quantity === 1 then
    singular
  else
    plural

pluralize "boy" "boys" -- will return an anonymous function that I will express as `f` that takes a number and finishes the evaluation of pluralize:

f quantity = pluralize "boy" "boys" quantity.


이것은 매우 흥미롭고 내가 익숙한 것과는 다릅니다. 나는 이것을 고수하기 위해 다양한 버전을 작성했습니다.

싱크하기 위해 the intro to elm에서 수정한 또 다른 예는 다음과 같습니다.



느릅나무는 훌륭합니다. 그것을 통과!

좋은 웹페이지 즐겨찾기