4. Image source : http://languagelog.ldc.upenn.edu/myl/BlondieLambda.gif
by 토니토닉
4
5. John McCarthy (1927.09.04 ~ 2011.10.24)
미국 MIT에서 LISP를 개발한 개발자.
Image source :
http://z4.enha.kr/http://upload.wikimedia.org/wikipedia/commons/thu
mb/4/49/John_McCarthy_Stanford.jpg/320px-John_McCarthy_Stanford.jpg
특징 명령형 방법 함수형 방법
프로그래머가 중점을 두는 부분 작업을 수행하는 방법(알고리즘)과 상태의 변
경을 추적하는 방법
원하는 정보와 필요한 변환
상태 변경 중요 존재하지 않음
실행 순서 중요 중요도가 낮음
주요 흐름 제어 루프, 조건 및 함수(메서드) 호출 재귀를 비롯한 함수 호출
주요 조작 단위 클래스나 구조체의 인스턴스 1급(first-class) 개체와 데이터 컬렉션인 함수by 토니토닉
5
※함수형 프로그래밍 언어의 한 갈래
6. Image source : http://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Mark_Odersky_photo_by_Linda_Poeng.jpg/220px-Mark_Odersky_photo_by_Linda_Poeng.jpg
by 토니토닉 6
7. by 토니토닉 7
Image source : http://markgoldenstein.com/scala-vs-java-weniger-code-mehr-inhalt/
30. by 토니토닉 30
1. 처음으로 t가 Sum인지 확인한다. 만약 맞다면 왼쪽 서브트리를
새로운 변수 l에 오른쪽 서브트리를 새로운 변수 r에 할당 한다.
그리고 화살표를 따라 화살표의 오른편으로 계산을 이어 나간다.
화살표의 오른편에서는 화살표의 왼편에서 할당된 변수 l과 r을
사용 한다.
2. 첫번째 확인이 성공하지 못하면 트리는 Sum이 아니라는 이야기
이다. 다음으로는 t가 Var인지 확인한다. 만약 맞다면 Var 노드 안
에 포함된 이름을 변수 n에 할당한다. 그리고 화살표의 오른쪽으
로 진행한다.
3. 두번째 확인 역시 실패하면 t는 Sum도 Var도 아니라는 뜻이다.
이제는 Const에 대해 확인 해본다. 만약 맞다면 Const 노드 안의
값을 변수 v에 할당하고 화살표의 오른쪽으로 진행한다.
4. 마지막으로 모든 확인이 실패하면 패턴 매칭이 실패 했음을 알리
는 예외가 발생하게 된다. 이러한 상황은 확인 한 것 외에 Tree의
하위 클래스가 더 존재 할 경우 일어난다.