CLOJURE PROGRAMMING 스터디
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, database 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 Walmart black Friday and came out without a scratch. — Anthony Marcar, Senior Archi-tect – WalmartLabs
https://www.youtube.com/watch?v=av9Xi6CNqq4
뽐뿌 - 2 Brandon Bloom - Building CircleCI's
Front end With Om https://www.youtube.com/watch?v=LNtQPS
Ui1iQhttps://github.com/circleci/frontend
뽐뿌 - 3 Driving React Native with Clojure-
Script / Om https://www.youtube.com/watch?v=Dt2zNe
mLCCk
Clojure Programming 책 Clojure Programming
Practical Lisp for the Java World By Chas Emerick, Brian Carper, Christophe
GrandPublisher: O'Reilly MediaFinal 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 Stephen-son
Leiningen - commandlein newlein depslein uberjarlein repl
새로운 프로젝트의존성 dependencies모두 jar 로 묶기REPL 실행
Leiningen - 설치 및 REPL
Leiningen - JAVA 환경설정
JAVA_HOMEC:\Program Files\Java\jdk1.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
nReplhttps://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/