이 시리즈는 "스칼라로 배우는 함수형 프로그래밍"을 TypeScript로 실습한 내용을 정리하고 있습니다.

2. 스칼라로 함수형 프로그래밍 시작하기

고차 함수

  • 함수를 함수에 전달

루프를 함수적으로

  • 재귀 함수 사용
  • 루프용 보조 함수는 관례적으로 go, loop등의 함수 이름 사용
  • go의 인수들은 루프의 상태에 해당
  • 다음 상태로 넘어갈때는 새로운 상태를 인수로 go를 호출
  • 루프에서 벗어날 때는 재귀 없이 값을 리턴

다형성

  • 객체지향에서는 대체로 하위형식화(subtyping)이나 상속 관계를 의미
  • 함수형에서는 매개변수적 다형성(parametric polymorphism), generic을 의미

다형적 함수를 구현할 때는 가능한 구현들의 공간이 크게 줄어든다. 다형적 형식에 대한 인수에 대해서는 인수로 전달받은 다형적 함수에 전달하는 것 이외에는 수행할 수 있는 일이 없다.

다형적 hof는 적용 범위가 극도로 넓은 경우가 많다. 특정 문제영역에 대한 특별한 요구사항을 가질 수 없고 오직 다수의 문맥에서 발생하는 공통의 패턴을 추상화 하기 때문.

이처럼 다형적 함수는 구현이 제한되기 때문에 "형식을 따라가다" 보면 정확한 구현에 이르는 예도 많이 있다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN