http://www.hanbit.co.kr/store/education/edu_view.html?p_code=S2703738600
세미나가서 들으면서 정리한 노트. 누구에게든 도움이 많이 될 것 같은 내용이라 공유. 모르는 내용이 많아서 잘못 받아적은 내용이 있을 수 있겠지만, 용어는 찾아가면서 정확하게 적으려 노력함.
Done with coding, ready for takeoff ✈️
http://www.hanbit.co.kr/store/education/edu_view.html?p_code=S2703738600
세미나가서 들으면서 정리한 노트. 누구에게든 도움이 많이 될 것 같은 내용이라 공유. 모르는 내용이 많아서 잘못 받아적은 내용이 있을 수 있겠지만, 용어는 찾아가면서 정확하게 적으려 노력함.
$ git pull https://github.com/yaboong/spark-study-project.git
%Y%m%d (20171210) 형식의 date string 을 가진 .txt 파일을 input 으로 받아 각 date string 을 가지고 있는 line 을 Date 오브젝트로 변환후 joda time 으로 무슨 요일인지 알아내고, 일요일의 총 개수를 카운트 하는 프로그램.
프로그램을 오직 순수 함수(pure function) 들로만, 부수효과(side effect) 가 없는 함수들로만 구축한다는 것.
부수효과(side effect) 란 그냥 결과를 돌려주는 것 이외의 어떤 일을 수행하는 함수를 말한다. 아래는 부수효과의 예시들이다.
함수형 프로그래밍은 우리가 프로그램을 작성하는 방식에 대한 제약이지 표현 가능한 프로그램의 종류에 대한 제약은 아니다.
순수 함수들로 프로그램을 작성하면 모듈성(modularity)이 증가하고, 이 덕분에 순수 함수는 테스트, 재사용, 병렬화, 일반화, 분석이 쉽고 버그가 생길 여지가 훨씬 적다.
new Array[String](3)
Array("a", "b", "c")
val twoThree = List(2, 3)
val oneTwoThree = 1 :: twoThree
1 :: twoThree
에서 twoThree 를 호출 대상 객체로 1을 인자로 받는 메소드 호출인 twoThree.::(1)
로 해석한다.1 :: (2 :: 3)
의 형태가 되는 것인데,