Files
2nd/10_Wiki/Topics/Functional Programming.md
T

2.4 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
P-REINFORCE-AUTO-FUPR-001 10_Wiki/💡 Topics/AI 0.96
auto-reinforced
functional-programming
declarative
immutability
pure-function
software-engineering
2026-04-20

Functional Programming

📌 한 줄 통찰 (The Karpathy Summary)

"상태 변화 없는 수학적 흐름: 데이터를 직접 수정(Mutation)하지 않고, 입력에 대해 항상 같은 결과를 내놓는 순수 함수(Pure Function)들의 조합으로 안정성 있고 예측 가능한 소프트웨어를 건축하는 프로그래밍 철학."

📖 구조화된 지식 (Synthesized Content)

함수형 프로그래밍(Functional Programming)은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임입니다.

  1. 핵심 원칙:
    • Immutability (불변성): 한번 생성된 데이터는 바꾸지 않고, 변화가 필요하면 새로운 데이터를 만듦. (멀티코어 환경의 안전성 확보)
    • Pure Functions: 외부 상태에 의존하지 않고 오직 입력으로만 결과를 냄 (Side effect 제거).
    • Higher-Order Functions: 함수를 값처럼 주고받아 로직의 결합과 재사용성을 극대화 (Map, Filter, Reduce).
  2. 왜 중요한가?:
    • 코드가 간결해지고 테스트가 압도적으로 쉬워지며, 분산 컴퓨팅(Distributed-Systems) 환경에서 데이터 일관성을 지키기에 최적임.

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 과거에는 하드웨어 자원 낭비(복사 비용 등) 때문에 '명령형/객체지향 정책'이 압승했으나, 현대 정책은 병렬 연산의 중요성과 소프트웨어 복잡성 해결 정책 때문에 모든 주류 언어가 함수형 특징을 도입하는 '하이브리드 함용 정책'으로 승리함(RL Update).
  • 정책 변화(RL Update): 거대 데이터 파이프라인 정책과 AI 모델의 레이어 연산 정책 자체가 거대한 함수 체인(Functional Chain) 정책으로 설계되어 있으며, 이를 선언적으로 다루는 능력이 현대 개발의 필수 정책이 됨.

🔗 지식 연결 (Graph)