객체지향 프로그래머를 위한 함수형 프로그래밍(F#) 입문

Source

  • Evernote/Technote scraps/Life Beyond Fife - Functional Programming For Object Oriented Programmers.md

Summary

이 문서는 객체지향(O-O) 프로그래머가 함수형 프로그래밍(F#)의 핵심 개념을 이해할 수 있도록 Quick Sort 알고리즘 구현을 예시로 들어 설명한다. 주요 개념으로 불변성(Immutable), 타입 추론, 괄호 없는 함수 호출, 일급 함수(First-class functions), 리스트 처리 등을 단계별로 소개하며, C#과의 비교를 통해 함수형 프로그래밍의 암시적(Implicit) 코드 스타일과 문법적 특징을 설명한다.

Key Points

  • F#의 변수는 선언과 동시에 정의되며 변경이 불가능한 불변성(Immutable)을 가진다.
  • 타입은 명시하지 않아도 컴파일러가 추론하며, 함수는 괄호나 쉼표 없이 공백으로 구분하여 호출한다.
  • 함수는 변수처럼 할당 가능한 일급 객체이며, let 또는 fun 키워드를 사용하여 정의할 수 있다.
  • 재귀 함수는 rec 키워드를 사용하며, 함수형 프로그래밍은 리스트(List)를 주요 데이터 구조로 활용한다.
  • 문서의 목적은 함수형 프로그래밍의 복잡한 문법보다 O-O 프로그래머가 이해하기 쉬운 개념적 전환에 초점을 맞추는 것이다.