함수형 프로그래밍

· Java
함수는 모든 곳에 존재한다. 함수형 프로그래밍이란 함수나 메서드가 수학의 함수처럼 부작용 없이 동작함을 의미한다. 함수형 언어 프로그래머는 함수형 프로그래밍이라는 용어를 좀 더 폭넓게 사용한다. 즉, 함수를 마치 일반 값처럼 사용해서 인수로 전달하거나, 결과로 반환받거나, 자료구조에 저장할 수 있음을 의미한다. 일반 값처럼 취급할 수 있는 함수를 일급 함수(first-class function)라고 한다. 자바 8에서는 :: 연산자로 메서드 참조를 만들거나 람다 표현식으로 직접 함숫값을 표현해서 메서드를 함수값으로 사용할 수 있다. 고차원 함수 함수형 프로그래밍 커뮤니티에 따르면 다음 중 하나 이상의 동작을 수행하는 함수를 고차원 함수(higher-order functions)라 부른다. 하나 이상의 함..
· Java
재귀와 반복 순수 함수형 프로그래밍 언어에서는 while, for 같은 반복문을 표함하지 않는다. 이러한 반복문 때문에 변화가 자연스럽게 코드에 스며들 수 있기 때문이다. 예를 들어 while 루프의 조건문을 갱신해야 할 때가 있다. 그렇지 않으면 루프가 아예 실행되지 않거나 무한으로 반복할 수 있다. 이외의 일반적인 상황에서는 루프를 안전하게 사용할 수 있다. 함수형 스타일에서는 다른 누군가가 변화를 알아차리지만 못한다면 아무 상관이 없다고 설명했다. 즉, 지역변수는 자유롭게 갱신할 수 있다. Iterator it = names.iterator(); while (it.hasNext()) { String name = it.next(); } 위 코드에서 호출자는 변화를 확인할 수 없으므로 아무 문제가 없다..
· Java
시스템 구현과 유지보수 대부분의 대규모 소프트웨어 시스템에서 실질적으로 많은 프로그래머가 유지보수 중 코드 크래시 디버깅 문제를 가장 많이 겪게 된다. 쉽게 유지보수할 수 있으려면 프로그램이 어떤 모습이어야 할까? 프로그램이 시스템의 구조를 이해하기 쉽게 클래스 계층으로 반영한다면 좋을 것이다. 시스템의 각 부분의 상호 의존성을 가리키는 결합성(coupoing)과 시스템의 다양한 부분이 서로 어떤 관계를 갖는지 가리키는 응집성(cohesion)이라는 소프트웨어 엔지니어링 도구로 프로그램 구조를 평가할 수 있다. 이러한 문제들을 함수형 프로그래밍이 제공하는 부작용 없음(no side effect)과 불변성(immutablility)이라는 개념으로 해결하는데 도움을 준다. 공유된 가변 데이터 코드 크래시는 ..
beekei
'함수형 프로그래밍' 태그의 글 목록