---
id: [[P-Reinforce|P-Reinforce]]-AUTO-FUPR-001
category: "10_Wiki/💡 Topics/AI"
confidence_score: 0.96
tags: [auto-reinforced, [[Functional-Programming|Functional-Programming]], declarative, immutability, pure-function, software-engineering]
last_reinforced: 2026-04-20
---

# [[Functional Programming|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|Distributed-Systems]]) 환경에서 데이터 일관성을 지키기에 최적임.

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

## 🔗 지식 연결 (Graph)
- [[Clean-Architecture-TypeScript|Clean-Architecture-TypeScript]], Distributed-Systems, Concurrent Programming, [[Logic|Logic]], [[Optimization|Optimization]]
- **Modern Tech/Tools**: Haskell, Elixir, React (Functional Components), Rust, Ramda.js.
---
