Open kmh5038 opened 10 months ago
프로그래밍 패러다임 중 하나로, 프로그램을 작성할 때 함수를 주요 구성요소로 사용하는 패러다임이다.
같은 입력에 대해 항상 같은 출력을 반환
하며, 외부 상태를 변경하지 않는다.데이터를 불변하게 다루는 것을 선호한다
. 예샹치 못한 부작용을 줄이고 코드 안정화를 시키기 위해서 한번 생성된 후에는 수정할 수 없도록한다. 값 변경이 필요할때는 값 변경대신 변경된 새로운 데이터를 생성한다.함수를 조합하여 더 복잡한 함수를 만든다
. 작은 함수들을 조합하여 더 큰 동작을 수행하는 함수를 만들어낸다.함수를 인자로 받거나 함수를 반환할 수 있는 함수를 뜻한다
. 고차함수를 사용하여 코드를 더 간결하고, 재사용성을 높여 중복을 줄인다.장점
코드가 직관적이다.
코드의 재사용성이 높아진다.
이로인해 유지보수가 쉽고 기능 확장에도 용이하다.데이터를 변경할 수 없도록 하여 부작용을 최소화
하여 디버깅에 용이하고, 병렬 작업이 더 안전하고 예측 가능해진다.단점
새로운 개념들을 학습하는데 시간이 걸린다.
이해하기 어렵고 복잡해져 가독성을 해칠수있다.
성능 저하
의 원인이 될 수 있고, 함수형 프로그래밍에서 재귀함수는 중요한 부분인데 잘못사용하면 무한 루프
에 빠질수있다.제한적일 수 있다.
고차함수를 객체의 메서드로 사용한다.
예를 들어 배열에 고차 함수를 사용하여 데이터를 변환한다.각 패러다임의 장점을 이용하여 프로그램을 작성한다.
함수형 프로그래밍은 부작용을 최소화하고 코드를 함수 단위로 분리하며 테스트하기 쉽게 만듭니다. 객체지향 프로그래밍은 데이터 캡슐화와 다형성을 통해 코드의 유지보수성을 높이고 재사용성을 증가시킵니다.