728x90
실행준비
아나콘다 가상환경설정 + 자바 설치 + Leiningen 설치 + 새 프로젝트 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | ~# su - fukaerii ~$ conda create --name marie python=3 ~$ . activate marie (marie) ~$ sudo apt-get update [sudo] password for fukaerii: (marie) ~$ sudo apt-get install git (marie) ~$ pwd /home/fukaerii (marie) ~$ java -version openjdk version "10.0.1" 2018-04-17 OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode) (marie) ~$ lein -version Leiningen 2.8.1 on Java 10.0.1 OpenJDK 64-Bit Server VM (marie) ~$ lein new wonderland Generating a project called wonderland based on the 'default' template. The default template is intended for library projects, not applications. To see other templates (app, plugin, etc), try `lein help new`. | cs |
새로 만든 프로젝트로 진입
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | (marie) ~$ cd wonderland (marie) ~/wonderland$ lein repl nREPL server started on port 45901 on host 127.0.0.1 - nrepl://127.0.0.1:45901 REPL-y 0.3.7, nREPL 0.2.12 Clojure 1.8.0 OpenJDK 64-Bit Server VM 10.0.1+10-Ubuntu-3ubuntu1 Docs: (doc function-name-here) (find-doc "part-of-name-here") Source: (source function-name-here) Javadoc: (javadoc java-object-or-class-here) Exit: Control+D or (exit) or (quit) Results: Stored in vars *1, *2, *3, an exception in *e user=> | cs |
클로저 식의 기본 구조 이해하기 (단순값)
클로저 코드는 식으로 구성되며, 그 식이 평가된 결과가 반환된다. 이들 중 자기 자신으로 평가되는 식을 단순값(simple value) 또는 리터럴(literal)이라고 부른다.
분수는 평가될 때 실수로 변환되지 않는다. 이로써 잘림 현상을 방지할 수 있다. 분수의 분모와 분자에는 정수만 올 수 있다. 약분이 가능한 경우 다음과 같이 약분된다.
1 2 3 4 5 6 7 8 9 | user=> 1/3 1/3 user=> 4/2 2 user=> 4.0/2 NumberFormatException Invalid number: 4.0/2 clojure.lang.LispReader.readNumber (LispReader.java:330) user=> | cs |
산술연산을 할려면 괄호로 둘러싼 식이 필요하다. 클로저에서는 함수나 연산자가 먼저 오고, 필요한 인수들이 뒤에 온다. 아래의 나누기 예제에서 인수 중 하나가 실수인 경우에는 실수로 반환된다.
1 2 3 4 5 6 7 8 | user=> (/ 1 3.0) 0.3333333333333333 user=> (/ 1 3) 1/3 user=> | cs |
클로저의 문자열은 큰따옴표로 둘러싸서 만든다. 키워드는 콜론(:) 으로 시작하는 식별자이다.
1 2 3 4 5 6 7 | user=> "zoo" "zoo" user=> :zoo :zoo user=> | cs |
문자 하나만 표현하기 위해서는 \j 와 같이 사용한다. 이 경우 "j"와 같이 문자열로 표현하는 것에 비해 부하가 줄어드는 장점이 있다.
1 2 3 4 5 6 | user=> \j \j user=> | cs |
불린값 True 와 False
1 2 3 4 5 6 7 | user=> true true user=> false false user=> | cs |
nil 은 클로저에서 값이 없음을 표현한다.
1 2 3 4 5 6 | user=> nil nil user=> | cs |
728x90
'프로그래밍 Programming' 카테고리의 다른 글
리눅스 계정 및 홈디렉토리 삭제 (0) | 2018.08.14 |
---|---|
클로저 02. 데이터 컬렉션 - 리스트 (0) | 2018.08.13 |
클로져 시작하기 Getting Started with Clojure (0) | 2018.08.09 |
우분투 18.04에 클로져 웹 어플리케이션 배포하기 How To Deploy a Clojure Web Application on Ubuntu 18.04 (0) | 2018.08.04 |
우분투에 클로져 설치하기 Installing clojure on ubuntu (0) | 2018.08.04 |