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

30 lines
2.4 KiB
Markdown

---
id: FP-001
category: "10_Wiki/💡 Topics/AI"
confidence_score: 1.0
tags: [programming, functional-programming, immutability, pure-functions, software-engineering]
last_reinforced: 2026-04-26
---
# [[Functional Programming|Functional Programming]] (함수형 프로그래밍)
## 📌 한 줄 통찰 (The Karpathy Summary)
> "데이터의 상태 변화를 피하고, 순수 함수들의 조합으로 견고한 로직을 조립하라" — 계산을 수학적 함수의 평가로 취급하고 상태 변경 및 가변 데이터를 멀리하여, 병렬 처리에 유리하고 버그가 적은 소프트웨어를 만드는 프로그래밍 패러다임.
## 📖 구조화된 지식 (Synthesized Content)
- **추출된 패턴:** "어떻게(How)" 연산할지보다 "무엇(What)"인지 정의하고, 입력을 넣으면 항상 동일한 출력이 나오는 불변성(Immutability)과 참조 투명성(Referential Transparency)을 유지하는 선언적 코딩 패턴.
- **핵심 개념:**
- **Pure Functions:** 외부 상태를 참조하거나 변경하지 않는 함수. 테스트와 디버깅이 매우 쉬움.
- **First-class Citizens:** 함수를 변수에 담고, 인자로 넘기고, 결과로 반환할 수 있음.
- **Higher-order Functions:** 함수를 파라미터로 받거나 결과로 반환하는 함수 (map, filter, reduce 등).
- **Immutability:** 한 번 생성된 데이터는 수정하지 않고 항상 새로운 데이터를 생성하여 전달.
- **의의:** 동시성(Concurrency) 문제가 발생하는 멀티코어 환경과 대규모 분산 시스템에서 데이터 일관성을 유지하는 가장 강력한 무기.
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 객체지향(OOP)이 유일한 정답이던 시대를 지나, 데이터 스트림 처리와 비동기 프로그래밍이 중요해지면서 함수형 패러다임이 모든 주류 언어(JS, Java, Python 등)에 깊숙이 침투함.
- **정책 변화:** Antigravity 프로젝트는 에이전트의 사고 흐름(Chain of Thought)을 처리하는 파이프라인 설계 시, 각 단계를 순수 함수로 정의하여 재현 가능성과 안정성을 확보함.
## 🔗 지식 연결 (Graph)
- [[Determinism-in-Computing|Determinism-in-Computing]], Distributed-Computing, Software-Architecture-Patterns, [[Parallel-Computing|Parallel-Computing]]
- **Raw Source:** 10_Wiki/Topics/AI/Functional-Programming.md