Web Dev/1. JS 문법 관련

[함수형 프로그래밍] 섹션7. 지연성 1

hYhY1234 2021. 2. 2. 17:03
728x90
Document 해당 Repository를 clone 하신 후, http-server ./section7 을 통해서 확인하실 수 있습니다

Range

  • 숫자를받고 그만큼의 숫자를 반환하는 함수

느긋한 L.range

  • generator를 이용한다
  • log(reduce(add, llist)): L.range는 코드 평가가 reduce를 실행하면 이뤄진다

take

  • 인자를두개 받고, limit과 이터러블, limit 갯수까지만 반환하는 함수

이터러블 중심 프로그래밍에서의 지연 평가(Lazy Evaluation)

  • 제때 계산법
  • 느긋한 계산법
  • 제너레이터/이터레이터프로토콜을 기반으로 구현

L.map

L.filter

range, map, filter, take, reduce 중첩 사용

L.range, L.map, L.filter, L.take, L.reduce 중첩 사용

map, filter 계열 함수들이 가지는 결합 법칙

  • 사용하는 데이터가 무엇이든지
  • 사용하는 보조 함수가 순수 함수라면 무엇이든지
  • 아래와 같이 결합한다면 둘다 결과가 같다
  • [[maapping, mapping], [filtering, filtering], [mapping, mapping]]
    =
    [[mapping, filtering, mapping], [mapping, filtering, mapping]]