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

Jason Kim·2020년 5월 4일
1

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

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

고차 함수

  • 함수를 함수에 전달

루프를 함수적으로

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

다형성

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

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

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

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

0개의 댓글