본문 바로가기

FunctionalThinking3

함수형 사고 - [5] 진화하라. "100개의 함수를 하나의 자료구조에 적용하는 것이 10개의 함수를 10개의 자료구조를 적용하는 것보다 낫다." - 앨런 펄리스 객체지향적인 명령형 프로그래밍 언어에서 재사용의 단위는 클래스와 그것들이 주고받는 메시지이다. 이것들은 클래스도표로 표시된다. 1. 적은 수의 자료구조, 많은 연산자 - 복잡한 자료구조를 직접 만들어야 하는 객체지향에 비해, 함수형은 주요 자료구조(map, set, list)와 거기에 따른 최적화된 연산들을 선호. - 그래서 XML을 파싱 할 때도, 함수형프로그래밍은 자료구조를 따로 만들 필요가 없다. - 스칼라에서 크롤링하는 코드를 보면 신기할 따름 -PlayJson ) 2. 문제를 향하여 언어를 구부리기 대부분의 개발자들은 복잡한 비지니스 문제를 자바와 같은 언어로 번역하는.. 2019. 7. 26.
함수형 사고 - [3] 양도하라. 반복처리에서 고계함수로- 클로저란 함수의 예로 표현 def Closure makeCounter(){ def local_variable = 0 return{return local_variable += 1} } c1 = makeCounter() c1() c1() c1() c2 = makeCounter() printIn "C1 = ${c1()}, C2 = ${c2()}" //C1 = 4, C2 = 1 만약 이 부분을 자바로 짠다면 어떻게 될까? import java.util.List; import java.util.ArrayList; // BEGIN counter_demo class Counter { public int varField; Counter(int var) { varField = var; } pub.. 2019. 7. 21.
함수형 사고 - [2] 전환 함수형 코드를 작성하기 위해서는, 함수형 언어인 스칼라나 클로저로의 전환이 필요한 것이 아니라 문제에 접근하는 방식의 전환이 필요하다. 1. 일반적인 예로 말할 수 있는 것은 JVM 왜일까? 우리가 C로 개발할 때는 메모리관리에 신경을 썼었지만, 이제는 JVM, 즉 컴퓨터에게 위임했기 때문. 2. 명령형 처리 명령형 프로그래밍이란 상태를 변형하는 일련의 명령들로 구성된 프로그래밍 방식을 말한다. 전형적인 For루프가 명령형 프로그래밍의 훌룡한 예. 초기 상태를 설정하고, 되풀이할 때마다 일련의 명령을 실행. 명령형 프로그래밍과 함수형 프로그래밍의 차이는, 통상적인 문제와 그에 대한 명령형의 해답을 살펴보면된다. 어떤 이름 목록에서, 한 글자로 된 이름을 제외한 모든 이름을 대문자화해서 쉼표로 연결한 문자.. 2019. 7. 21.