28 lines
1.7 KiB
Markdown
28 lines
1.7 KiB
Markdown
---
|
|
id: P-REINFORCE-AI-FUNCTIONAL
|
|
category: "[[10_Wiki/💡 Topics/AI]]"
|
|
confidence_score: 0.98
|
|
tags: [Programming, FunctionalProgramming, Declarative, Immutability]
|
|
last_reinforced: 2026-04-20
|
|
---
|
|
|
|
# [[Functional-Programming]] (함수형 프로그래밍)
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> "상태를 바꾸지 말고, 명확한 수식을 선언하라." 프로그램의 실행보다 데이터의 변환(Transformation)에 집중하며, 부작용(Side Effect)이 없는 순수 함수를 조합하여 복잡성을 관리하는 패러다임이다.
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
- **Core Concepts**:
|
|
- **Pure Functions**: 동일한 입력에 언제나 동일한 출력. 외부 상태를 건드리지 않음.
|
|
- **Immutability**: 데이터는 한 번 생성되면 변하지 않음. 변경이 필요하면 복사본 생성.
|
|
- **First-class Citizens**: 함수를 변수에 담고, 인자로 전달하고, 결과로 리턴할 수 있음.
|
|
- **Declarative**: '어떻게(How)'가 아니라 '무엇(What)'을 하는지 명시함.
|
|
- **Benefits**: 테스트와 디버깅이 압도적으로 쉽고, 병렬 처리에 매우 유리하다.
|
|
|
|
## ⚠️ 모순 및 업데이트 (RL Update)
|
|
- 순수 함수형은 현실 세계의 '상태 변화'나 'I/O'를 처리하기가 매우 까다롭다(모나드 등의 난해한 개념 필요). 따라서 현대의 개발 주류는 객체 지향의 구조적 장점과 함수형의 논리적 안정성을 결합한 **'멀티 패러다임(Multi-paradigm)'** 방식으로 정착하고 있다.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- Related: [[JavaScript-Modern-Patterns]] , [[Reactive-Programming]]
|
|
- Key Concept: [[Referential-Transparency]]
|