Gemini 함수형 프로그래밍 프롬프트 - 순수 함수, 불변성, 고차 함수
함수형 프로그래밍 패턴 학습과 적용. 순수 함수, 불변성, 고차 함수, 커링, 모나드, 함수 합성.
수정
💡
프롬프트 사용 방법
- 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
- 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
- 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요
💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!
📝 필요한 정보를 입력해주세요 (총 3개)
학습주제에 대한 값을 입력하세요
프로그래밍언어에 대한 값을 입력하세요
코드내용에 대한 값을 입력하세요
📋 완성된 프롬프트 (복사해서 사용하세요)
함수형 프로그래밍 패턴을 지도하세요.
## 학습 정보
- 학습 주제: {{학습주제}}
- 언어: {{프로그래밍언어}}
- 코드: {{코드내용}}
## 요청
1. 핵심 개념 설명
2. 코드 분석 (부작용, 가변 상태)
3. 함수형 변환
4. 실무 적용 가이드 입력하지 않은 항목은 원래 표시를 유지합니다.
자동 복사를 사용할 수 없습니다. 아래 선택된 내용을 Ctrl+C 또는 ⌘C로 복사하거나, 길게 눌러 복사하세요.
간단 버전
함수형 프로그래밍으로 변환해주세요.
주제: {{학습주제}}, 코드: {{코드내용}}, 언어: {{프로그래밍언어}}
개념 설명, 변환 코드, 적용 패턴을 알려주세요.
입력값 가이드
| 입력 항목 | 한국어 설명 | placeholder | 예시 |
|---|---|---|---|
| 학습주제 | 학습하거나 변환할 주제를 입력하세요 | 예: 순수 함수, 명령형→함수형 변환 | 순수 함수, 명령형→함수형 변환 |
| 프로그래밍언어 | 사용하는 언어를 선택하세요 | 예: JavaScript, TypeScript, Python | JavaScript, TypeScript, Python |
| 코드내용 | 변환할 코드가 있다면 적어주세요 | 예: function add(a, b) { ... } | function add(a, b) { ... } |
인풋 필드
[학습 주제]
▼ 텍스트 입력
placeholder: "예: 순수 함수, 명령형→함수형 변환"
설명: 학습하거나 변환할 주제를 입력하세요
[프로그래밍 언어]
▼ 드롭다운 선택
옵션: JavaScript, TypeScript, Python, Haskell, Elixir, F#, Clojure
placeholder: "예: JavaScript, TypeScript, Python"
설명: 사용하는 언어를 선택하세요
[코드 내용]
▼ 텍스트 영역 입력
placeholder: "예: function add(a, b) { ... }"
설명: 변환할 코드가 있다면 적어주세요
함수형 프로그래밍 핵심 개념
| 개념 | 설명 | 특징 |
|---|---|---|
| 순수 함수 | 같은 입력→같은 출력 | 부작용 없음, 참조 투명성 |
| 불변성 | 데이터 수정 불가 | 새 데이터 생성, 구조적 공유 |
| 고차 함수 | 함수를 인자/반환값으로 | map, filter, reduce |
| 함수 합성 | 작은 함수 결합 | compose, pipe |
| 커링 | 다중 인자→단일 인자 체인 | 부분 적용 가능 |
| 모나드 | 부작용 관리 패턴 | Maybe, Either, IO |
코드 예시
순수 함수 변환
// ❌ Bad: 부작용 있음
let discount = 0;
function applyDiscount(price) {
discount = 0.1; // 외부 상태 변경
return price * (1 - discount);
}
// ✅ Good: 순수 함수
const applyDiscount = (price, rate) => price * (1 - rate);
불변성
// ❌ Bad: 원본 수정
function addItem(cart, item) {
cart.push(item);
return cart;
}
// ✅ Good: 새 배열 생성
const addItem = (cart, item) => [...cart, item];
함수 합성 & Maybe 모나드
// 함수 합성
const compose = (...fns) => x => fns.reduceRight((v, f) => f(v), x);
const process = compose(trim, lowercase);
// Maybe 모나드
const getEmail = (user) =>
Maybe.of(user)
.map(u => u.profile)
.map(p => p.email)
.getOrElse('No email');
함수형 이점
| 이점 | 효과 |
|---|---|
| 참조 투명성 | 예측 가능한 코드 |
| 테스트 용이성 | 의존성 없는 단위 테스트 |
| 디버깅 용이성 | 부작용 없음 |
| 병렬 처리 | 공유 상태 없음 |
🚀 AI 바로 열기
🔗 관련 프롬프트
gemini
Gemini 리팩토링 프롬프트 - 코드 품질 개선, 클린 코드
코드 리팩토링, 품질 개선, 클린 코드 변환, 성능 최적화를 수행합니다.
리팩토링코드개선
프롬프트와 사용 가이드 gemini
Gemini 클린 아키텍처 프롬프트 - SOLID, DDD, 헥사고날
클린 아키텍처 원칙을 적용한 소프트웨어 설계. SOLID, DDD, 의존성 역전, 레이어 분리.
클린아키텍처SOLID
프롬프트와 사용 가이드 gemini
Gemini API 통합 프롬프트 - REST API, GraphQL, 웹훅
외부 API와 서비스를 통합하는 코드를 작성합니다. 인증, 요청 처리, 에러 핸들링 포함.
API통합RESTAPI
프롬프트와 사용 가이드 gemini
Gemini 데이터베이스 설계 프롬프트 - 정규화, 인덱싱, 파티셔닝
확장 가능하고 효율적인 DB 아키텍처를 설계합니다. 정규화, 인덱싱, 파티셔닝, 쿼리 최적화 포함.
데이터베이스설계DB설계
프롬프트와 사용 가이드