ݺߣ

ݺߣShare a Scribd company logo
p.s. 본 문서는 Scala의 가장 기초적인 문법만을 다루고 있습니다.
1. 함수형 언어란?
2. 스칼라의 탄생
3. 스칼라 기초 문법
4. 스칼라의 특징
5. 참조
*목차*
by 토니토닉 2
Image source : http://matt.might.net/articles/compiling-up-to-lambda-calculus/images/y_combinator.jpg
Image source : http://img.brothersoft.com/screenshots/softimage/l/lambda_calculator-365323-1273647129.jpeg
by 토니토닉
3
Image source : http://languagelog.ldc.upenn.edu/myl/BlondieLambda.gif
by 토니토닉
4
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
※함수형 프로그래밍 언어의 한 갈래
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
by 토니토닉 7
Image source : http://markgoldenstein.com/scala-vs-java-weniger-code-mehr-inhalt/
by 토니토닉 8
by 토니토닉 9
by 토니토닉 10
by 토니토닉 11
* capitalize 함수는 문자열의 첫글자를 대문자로 바꿔서 반환하는 함수
by 토니토닉 12
by 토니토닉 13
https://groups.google.com/forum/#!topic/scala-korea/dfkcfM5yM9M
by 토니토닉 14
by 토니토닉 15
by 토니토닉 16
by 토니토닉 17
http://www.slideshare.net/ennorunne/scala-for-java-programmers-2973915
by 토니토닉 18
by 토니토닉 19
http://www.scala-lang.org/old/node/71%3Fsize=_original.html#
• null
• nothing(=Nil)
by 토니토닉 20
by 토니토닉 21
by 토니토닉 22
클로저라는 이름은 함수 리터럴의 본문에 있는 모든 자유변수(free variable) 에 대한 바인딩(binding)을 ‘포획(capturing)’해서 자유 변수가 없게 ‘닫는(closing)’행위에서 따온 말.
by 토니토닉 23
by 토니토닉 24
by 토니토닉 25
<결과 화면>
 getter, setter | (혹은 property) 개념
by 토니토닉 26
by 토니토닉 27
by 토니토닉 28
by 토니토닉 29
by 토니토닉 30
1. 처음으로 t가 Sum인지 확인한다. 만약 맞다면 왼쪽 서브트리를
새로운 변수 l에 오른쪽 서브트리를 새로운 변수 r에 할당 한다.
그리고 화살표를 따라 화살표의 오른편으로 계산을 이어 나간다.
화살표의 오른편에서는 화살표의 왼편에서 할당된 변수 l과 r을
사용 한다.
2. 첫번째 확인이 성공하지 못하면 트리는 Sum이 아니라는 이야기
이다. 다음으로는 t가 Var인지 확인한다. 만약 맞다면 Var 노드 안
에 포함된 이름을 변수 n에 할당한다. 그리고 화살표의 오른쪽으
로 진행한다.
3. 두번째 확인 역시 실패하면 t는 Sum도 Var도 아니라는 뜻이다.
이제는 Const에 대해 확인 해본다. 만약 맞다면 Const 노드 안의
값을 변수 v에 할당하고 화살표의 오른쪽으로 진행한다.
4. 마지막으로 모든 확인이 실패하면 패턴 매칭이 실패 했음을 알리
는 예외가 발생하게 된다. 이러한 상황은 확인 한 것 외에 Tree의
하위 클래스가 더 존재 할 경우 일어난다.
by 토니토닉 31
by 토니토닉 32
by 토니토닉 33
by 토니토닉 34
by 토니토닉 35
by 토니토닉 36
by 토니토닉 37
Ad

Recommended

[C++ korea] effective modern c++ study item 1정은식
[C++ korea] effective modern c++ study item 1정은식
은식 정
[C++ korea] effective modern c++ study item 1 understand template type dedu...
[C++ korea] effective modern c++ study item 1 understand template type dedu...
Seok-joon Yun
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...
Seok-joon Yun
Modern Effective C++ Item2 Understanding Auto type deducing
Modern Effective C++ Item2 Understanding Auto type deducing
건 손
Apache Toree
Apache Toree
Asim Jalis
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
Taeoh Kim
Clojure Monad
Clojure Monad
Eunmin Kim
하스켈 프로그래밍 입문
하스켈 프로그래밍 입문
Kwang Yul Seo
자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라
Jong Gook Bae
Scala syntax function
Scala syntax function
Yong Joon Moon
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
NAVER D2
하스켈 프로그래밍 입문 2
하스켈 프로그래밍 입문 2
Kwang Yul Seo
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
Sanghoon Yoon
Haskell study 5
Haskell study 5
Nam Hyeonuk
Haskell study 12
Haskell study 12
Nam Hyeonuk
러닝스칼라 - Scala 기초 (1)
러닝스칼라 - Scala 기초 (1)
명성 정
Haskell study 13
Haskell study 13
Nam Hyeonuk
Scala 기초 (4)
Scala 기초 (4)
명성 정
Valentine
Valentine
Cheolung Choi
Haskell study 4
Haskell study 4
Nam Hyeonuk
Haskell study 9
Haskell study 9
Nam Hyeonuk
함수형 사고 - Functional thinking
함수형 사고 - Functional thinking
재문 심
Java
Java
U.g. Yong
Functional Programming
Functional Programming
DonghyunLee85
키트웍스발표자료깶경수ڳܲԳپDzԲDzԲ240920.
키트웍스발표자료깶경수ڳܲԳپDzԲDzԲ240920.
Wonjun Hwang
Feel functional
Feel functional
WonJun Lee
Functional programming
Functional programming
ssuserdcfefa

More Related Content

Similar to 함수형 프로그래밍 언어 스칼라(Scala) 소개 (20)

자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라
Jong Gook Bae
Scala syntax function
Scala syntax function
Yong Joon Moon
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
NAVER D2
하스켈 프로그래밍 입문 2
하스켈 프로그래밍 입문 2
Kwang Yul Seo
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
Sanghoon Yoon
Haskell study 5
Haskell study 5
Nam Hyeonuk
Haskell study 12
Haskell study 12
Nam Hyeonuk
러닝스칼라 - Scala 기초 (1)
러닝스칼라 - Scala 기초 (1)
명성 정
Haskell study 13
Haskell study 13
Nam Hyeonuk
Scala 기초 (4)
Scala 기초 (4)
명성 정
Valentine
Valentine
Cheolung Choi
Haskell study 4
Haskell study 4
Nam Hyeonuk
Haskell study 9
Haskell study 9
Nam Hyeonuk
함수형 사고 - Functional thinking
함수형 사고 - Functional thinking
재문 심
Java
Java
U.g. Yong
Functional Programming
Functional Programming
DonghyunLee85
키트웍스발표자료깶경수ڳܲԳپDzԲDzԲ240920.
키트웍스발표자료깶경수ڳܲԳپDzԲDzԲ240920.
Wonjun Hwang
Feel functional
Feel functional
WonJun Lee
Functional programming
Functional programming
ssuserdcfefa
자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라
Jong Gook Bae
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
[D2 campus seminar]스칼라를 통한 다양한 언어의 패러다임 맛보기
NAVER D2
하스켈 프로그래밍 입문 2
하스켈 프로그래밍 입문 2
Kwang Yul Seo
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
Sanghoon Yoon
러닝스칼라 - Scala 기초 (1)
러닝스칼라 - Scala 기초 (1)
명성 정
함수형 사고 - Functional thinking
함수형 사고 - Functional thinking
재문 심
키트웍스발표자료깶경수ڳܲԳپDzԲDzԲ240920.
키트웍스발표자료깶경수ڳܲԳپDzԲDzԲ240920.
Wonjun Hwang

함수형 프로그래밍 언어 스칼라(Scala) 소개