맥 환경에서 라이닝겐을 설치하고 repl 을 사용해 보자

brew install leiningen
lein new hello-clojure
cd hello-clojure
lein repl

기본적인 함수 호출하기

user=> (- 1)
-1
user=> (+ 1 1)
2
user=> (* 10 10)
100

이것은 간단한 산수에 불과하다. 나누기는 약간 흥미롭다.

user=> (/ 1 3)
1/3
user=> (/ 2 4)
1/2
user=> (/ 2.0 4)
0.5
user=> (class (/ 1 3))
clojure.lang.Ratio

클로저는 ratio라는 기본적이 자료형을 가지고 있다. 이것은 정밀도가 상실되는 것을 피하기 위해서 계산 자체를 지연하는 멋진 기능이다. 원한다면 부동소수점을 이용해서 계산을 수행할 수도 있다. 이런 방식을 통해 나머지를 쉽게 계산할 수 있다.

user=> (mod 5 4)

나머지 연산을 수행하는 간략한 방법이다. 이러한 표기법은 전위 표기법prefix notation이라고 불린다. 지금까지 보았던 언어들은 모두 4+1-2 처럼 연산자가 피연산자 사이에 오는 중위 표기법infix notation을 사용했다. 우리는 수학 공식을 이런 방식으로 표기하는데 익숙하기 때문에 많은 사람이 이미 익숙한 중위 표기법을 선호한다. 하지만 전위 표기법의 장점도 있다.


user=> (/ (/ 12 2) (/ 6 2))
2

클로저는 괄호가 지정하는 순서대로 계산할 것이다.

user=> (+ 2 2 2 2)
8

원한다면 계산 과정에 또 다른 인수를 추가하는 것은 간단하다.

user=> (- 8 1 2)
5
user=> (/ 8 2 2)
2

이렇게 단순한 연산자 평가를 통해서 놀라울 정도로 강력한 결과를 얻을 수 있다.

user=> (< 1 2 3)
true
user=> (< 1 3 2 4)
false

훌륭하다. 이렇게 연산자 하나와 임의 개수의 인자를 이용해서 리스트의 내용이 정렬되어 있는지 여부를 판별할 수 있다.


출처
브루스 테이트의 세븐랭귀지

참고
https://leiningen.org/