32 lines
2.4 KiB
Markdown
32 lines
2.4 KiB
Markdown
---
|
|
id: P-REINFORCE-AUTO-FUPR-001
|
|
category: "[[10_Wiki/💡 Topics/AI]]"
|
|
confidence_score: 0.96
|
|
tags: [auto-reinforced, functional-programming, declarative, immutability, pure-function, software-engineering]
|
|
last_reinforced: 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)
|
|
- [[Clean-Architecture-TypeScript]], [[Distributed-Systems]], [[Concurrent Programming]], [[Logic]], [[Optimization]]
|
|
- **Modern Tech/Tools**: Haskell, Elixir, React (Functional Components), Rust, Ramda.js.
|
|
---
|