SlideShare a Scribd company logo
Clojure programming study_00
Lisp을 좋아하는 사람들의 그룹
 http://lispkorea.org:8080/k-lisper
Clojure? - 소개
JVM위에서 돌아가는 Lisp 계통 언어.
발음은 "closure"와 같음.
Lisp가 뭘 의미하는 거야?
 이름의 기원 : LISt Processing
 이름에서 나타나듯이 Linked List(단일 연
결 리스트)가 주된 자료구조.
AI 언어?
 “John McCarthy”
 Lisp의 아버지 "존 매카시”
 (1927년 9월 4일 ~ 2011년 10월 24일)
 1956년 다트머스 학회에서 처음으로 인공지능(Artificial
Intelligence)이라는 용어를 창안
 1958년 Lisp 개발시작
 1960년 논문 "Recursive Functions of Symbolic
Expressions and Their Computation by Machine, Part I“
 1971년 튜링상 수상. 인공지능에 대한 연구업적 인정
Lisp Machine in MIT’s Museum
Clojure? - 역사
● 1930년
– lambda calculus 소개 - Alonzo Church
● 1958년
– Lisp 언어 소개 - John McCarthy
● 1959년
– 첫번째 Lisp 구현 - Steve Russell
● 1995년
– Java 출현 - James Gosling, Sun Microsystems
● 2007년 10월
– Clojure 출현 1.0.x - Rich Hickey
● 2015년 06월 30일
– Clojure 1.7.0 - stable
Clojure? - 창시자
● 리치히키(Rich Hickey)
● 20년 이상의 개발경력
– scheduling systems, broadcast automation, audio analysis, fingerprinting, dat
abase design, yield management, exit poll systems, machine listening
● NYU(New York University)에서 Advanced C++강의
● 다룬 언어들 C, C++, Java, C#
● 맘에드는게 없어 Clojure를 3년동안 개발
● .clj(C#, Lisp, Java)
Clojure - Lisp
Clojure? - 비교 - scala
● 중위표기법
● 정적타입
● 객체지향
● 타입시스템
Clojure? - 비교 - clojure
● 전위표기법
● 동적타입
● 데이터지향
● 코드 역시 데이터
Clojure - 개발 - Java
Clojure - 개발 - Clojure
뽐뿌
 자바 창시자 제임스 고슬링, 프로그래밍
다양성 강조
 "개인적으로도 스칼라(Scala), 클로저(Clojure)
를 좋아한다. 스칼라로는 프로젝트를 하나 했
고 클로저는 다뤄보고 있다”
 http://www.zdnet.co.kr/news/news_view.asp
?artice_id=20150731111920
뽐뿌 - 1
 Walmart Runs Clojure at Scale
 Our Clojure system just handled its first Wal
mart black Friday and came out without a sc
ratch. — Anthony Marcar, Senior Architect –
WalmartLabs
 https://www.youtube.com/watch?v=av9Xi6C
Nqq4
뽐뿌 - 2
 Brandon Bloom - Building CircleCI's
Front end With Om
 https://www.youtube.com/watch?v=LNtQPS
Ui1iQ
 https://github.com/circleci/frontend
뽐뿌 - 3
 Driving React Native with ClojureScri
pt / Om
 https://www.youtube.com/watch?v=Dt2zNem
LCCk
Clojure Programming 책
 Clojure Programming
 Practical Lisp for the Java World
 By Chas Emerick, Brian Carper, Christophe
Grand
 Publisher: O'Reilly Media
 Final Release Date: March 2012
 Pages: 630
 http://www.clojurebook.com/
스터디 일정, 방식 결정.
 참가자들 각자 소개
 스터디 일정, 방식 결정.
Leiningen
 Java 프로젝트 매니저인, ant와 maven은 XML을 가지고
프로젝트를 관리한다.
 하지만, XML은 보고 수정하기 힘들다!
 Leiningen은 프로젝트관리 파일 자체가 .clj 파일이다.
Leiningen
Ant: Java 프로젝트 관리도구
Leiningen: Clojure프로젝트 관리도구
라이닝겐(Leiningen)은 끝내 개미(Ant)들을 물리치고
자신의 농장을 지켰다.
“Leiningen Versus the Ants” - Carl Stephenso
n
Leiningen - command
lein new
lein deps
lein uberjar
lein repl
새로운 프로젝트
의존성 dependencies
모두 jar로 묶기
REPL 실행
Leiningen - 설치 및 REPL
Leiningen - JAVA환경설정
JAVA_HOME
C:Program FilesJavajdk1.7.0_40
PATH
%PATH%;%JAVA_HOME%bin
Leinin – new hello
> cd prj
> lein new hello
> tree hello
hello
├─doc
├─resources
├─src
│ └─hello
└─test
└─hello
nRepl
https://github.com/clojure/tools.nrepl
Clojure *n*etwork REPL.
Read–Eval–Print-Loop
nRepl
> lein repl
IntelliJ + Cursive 클로저 개발 환경 만들
기
 http://manmyung.github.io/posts/2015-
03-17-post.html
 https://www.jetbrains.com/idea/download/
 https://cursiveclojure.com/userguide/
 https://groups.google.com/forum/#!forum
/lisp-korea
 https://lisp-korea.slack.com/
 https://clojurians.slack.com/messages/cl
ojure-korea/
 https://www.facebook.com/groups/defncl
ojure/

More Related Content

PPT
Clojure development environment
PDF
클로져 소개 강의 (한국정보통신산업노동조합)
PDF
Clojurescript로 하는 함수형 UI 프로그래밍
PDF
Project anarchy로 3d 게임 만들기 part_5_waste of time shoveling
PDF
React principle
PPTX
Event Loop - Java Script
PPTX
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
PDF
Direct x 12 초기화
Clojure development environment
클로져 소개 강의 (한국정보통신산업노동조합)
Clojurescript로 하는 함수형 UI 프로그래밍
Project anarchy로 3d 게임 만들기 part_5_waste of time shoveling
React principle
Event Loop - Java Script
[Gpg1권 조진현] 4.16~4.20 실시간 사실적 지형 + 프랙탈
Direct x 12 초기화

More from EunPyoung Kim (6)

PPTX
Clojure with panama
PPTX
Interop with c in clojure
PPTX
Using FXML on Clojure
PPTX
On lisp ch18
PPTX
On lisp ch09
PPTX
Clojure with panama
Interop with c in clojure
Using FXML on Clojure
On lisp ch18
On lisp ch09
Ad

Clojure programming study_00

  • 2. Lisp을 좋아하는 사람들의 그룹  http://lispkorea.org:8080/k-lisper
  • 3. Clojure? - 소개 JVM위에서 돌아가는 Lisp 계통 언어. 발음은 "closure"와 같음.
  • 4. Lisp가 뭘 의미하는 거야?  이름의 기원 : LISt Processing  이름에서 나타나듯이 Linked List(단일 연 결 리스트)가 주된 자료구조.
  • 5. AI 언어?  “John McCarthy”  Lisp의 아버지 "존 매카시”  (1927년 9월 4일 ~ 2011년 10월 24일)  1956년 다트머스 학회에서 처음으로 인공지능(Artificial Intelligence)이라는 용어를 창안  1958년 Lisp 개발시작  1960년 논문 "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I“  1971년 튜링상 수상. 인공지능에 대한 연구업적 인정
  • 6. Lisp Machine in MIT’s Museum
  • 7. Clojure? - 역사 ● 1930년 – lambda calculus 소개 - Alonzo Church ● 1958년 – Lisp 언어 소개 - John McCarthy ● 1959년 – 첫번째 Lisp 구현 - Steve Russell ● 1995년 – Java 출현 - James Gosling, Sun Microsystems ● 2007년 10월 – Clojure 출현 1.0.x - Rich Hickey ● 2015년 06월 30일 – Clojure 1.7.0 - stable
  • 8. Clojure? - 창시자 ● 리치히키(Rich Hickey) ● 20년 이상의 개발경력 – scheduling systems, broadcast automation, audio analysis, fingerprinting, dat abase design, yield management, exit poll systems, machine listening ● NYU(New York University)에서 Advanced C++강의 ● 다룬 언어들 C, C++, Java, C# ● 맘에드는게 없어 Clojure를 3년동안 개발 ● .clj(C#, Lisp, Java)
  • 10. Clojure? - 비교 - scala ● 중위표기법 ● 정적타입 ● 객체지향 ● 타입시스템
  • 11. Clojure? - 비교 - clojure ● 전위표기법 ● 동적타입 ● 데이터지향 ● 코드 역시 데이터
  • 13. Clojure - 개발 - Clojure
  • 14. 뽐뿌  자바 창시자 제임스 고슬링, 프로그래밍 다양성 강조  "개인적으로도 스칼라(Scala), 클로저(Clojure) 를 좋아한다. 스칼라로는 프로젝트를 하나 했 고 클로저는 다뤄보고 있다”  http://www.zdnet.co.kr/news/news_view.asp ?artice_id=20150731111920
  • 15. 뽐뿌 - 1  Walmart Runs Clojure at Scale  Our Clojure system just handled its first Wal mart black Friday and came out without a sc ratch. — Anthony Marcar, Senior Architect – WalmartLabs  https://www.youtube.com/watch?v=av9Xi6C Nqq4
  • 16. 뽐뿌 - 2  Brandon Bloom - Building CircleCI's Front end With Om  https://www.youtube.com/watch?v=LNtQPS Ui1iQ  https://github.com/circleci/frontend
  • 17. 뽐뿌 - 3  Driving React Native with ClojureScri pt / Om  https://www.youtube.com/watch?v=Dt2zNem LCCk
  • 18. Clojure Programming 책  Clojure Programming  Practical Lisp for the Java World  By Chas Emerick, Brian Carper, Christophe Grand  Publisher: O'Reilly Media  Final Release Date: March 2012  Pages: 630  http://www.clojurebook.com/
  • 19. 스터디 일정, 방식 결정.  참가자들 각자 소개  스터디 일정, 방식 결정.
  • 20. Leiningen  Java 프로젝트 매니저인, ant와 maven은 XML을 가지고 프로젝트를 관리한다.  하지만, XML은 보고 수정하기 힘들다!  Leiningen은 프로젝트관리 파일 자체가 .clj 파일이다.
  • 21. Leiningen Ant: Java 프로젝트 관리도구 Leiningen: Clojure프로젝트 관리도구 라이닝겐(Leiningen)은 끝내 개미(Ant)들을 물리치고 자신의 농장을 지켰다. “Leiningen Versus the Ants” - Carl Stephenso n
  • 22. Leiningen - command lein new lein deps lein uberjar lein repl 새로운 프로젝트 의존성 dependencies 모두 jar로 묶기 REPL 실행
  • 23. Leiningen - 설치 및 REPL
  • 24. Leiningen - JAVA환경설정 JAVA_HOME C:Program FilesJavajdk1.7.0_40 PATH %PATH%;%JAVA_HOME%bin
  • 25. Leinin – new hello > cd prj > lein new hello > tree hello hello ├─doc ├─resources ├─src │ └─hello └─test └─hello
  • 28. IntelliJ + Cursive 클로저 개발 환경 만들 기  http://manmyung.github.io/posts/2015- 03-17-post.html  https://www.jetbrains.com/idea/download/  https://cursiveclojure.com/userguide/
  • 29.  https://groups.google.com/forum/#!forum /lisp-korea  https://lisp-korea.slack.com/  https://clojurians.slack.com/messages/cl ojure-korea/  https://www.facebook.com/groups/defncl ojure/