(defun hello (name)
 (print (concatenate 'string "Hello, " name "!")))

(hello "Common Lisp")

(define (hello name)
 (print "Hello, " name "!"))

(hello "Scheme")

(defn hello [name]
 (print (str "Hello, " name "!")))

(hello "Clojure")
def hello(name)
 puts "Hello, " + name + "!"
end

hello "Ruby"

(defn hello [name]
 (print (str "Hello, " name "!")))

(hello "Clojure")
def hello(name)
 puts "Hello, " + name + "!"
end

hello "Ruby"

(defn hello [name]
 (print (str "Hello, " name "!")))

(hello "Clojure")
(1 2 3)


["apple" "google" "microsoft"]


{:artist "Michael Jackson" :song "Thriller"}
person.getAddress().getZipCode()



(.getZipCode (.getAddress person))
person.getAddress().getZipCode()



(.getZipCode (.getAddress person))
person.getAddress().getZipCode()



(.getZipCode (.getAddress person))
person.getAddress().getZipCode()



(.getZipCode (.getAddress person))
person.getAddress().getZipCode()



(.getZipCode (.getAddress person))
person.getAddress().getZipCode()



(.. person getAddress getZipCode)
(car (list 1 3 5 7 9))
; -> 1

(cdr (list 1 3 5 7 9))
; -> (3 5 7 9)
(first (list 1 3 5 7 9))
; -> 1

(second (list 1 3 5 7 9))
; -> 3

(rest (list 1 3 5 7 9))
; -> (3 5 7 9)
#!/bin/sh
java -cp /path/to/clojure.jar clojure.main $*


$ clj
Clojure 1.2.0-master-SNAPSHOT
user=>

$ clj hello.clj
Hello, Clojure!
$ curl -O http://github.com/technomancy/leiningen/raw/stable/bin/lein

$ mv lein ~/bin/

$ chmod +x ~/bin/lein

$ lein self-install

$ lein repl
Clojure 1.1.0-master-SNAPSHOT
user=>
user=> (doc first)
(doc first)
-------------------------
clojure.core/first
([coll])
  Returns the first item in the collection. Calls seq on its
   argument. If coll is nil, returns nil.
user=> (use 'clojure.contrib.repl-utils)
(use 'clojure.contrib.repl-utils)
nil
user=> (source +)
(source +)
(defn +
  "Returns the sum of nums. (+) returns 0."
  {:inline (fn [x y] `(. clojure.lang.Numbers (add ~x ~y)))
    :inline-arities #{2}}
...
user=> (use 'clojure.contrib.repl-utils)
(use 'clojure.contrib.repl-utils)
nil
user=> (show java.net.InetAddress)
(show java.net.InetAddress)
=== public java.net.InetAddress ===
[ 0] static getAllByName : InetAddress[] (String)
[ 1] static getByAddress : InetAddress (String,byte[])
[ 2] static getByAddress : InetAddress (byte[])
...
$ cat abc.txt
abc
defg

Clojure
user=> (slurp "abc.txt")
"abcndefgnnClojure              n"
user=> (print (slurp "abc.txt"))
abc
defg

Clojure
nil
user=>
user=> (use '[clojure.contrib.duck-streams :only (read-lines)])
nil
user=> (doseq [line (read-lines "abc.txt")]
 (println line))
abc
defg

Clojure
nil
for (String line : lines) {
  System.out.println(line);
}




(doseq [line lines]
 (println line))
user=> (use '[clojure.contrib.duck-streams :only (reader)])
nil
user=> (doseq [line (line-seq (reader (java.io.File. "abc.txt")))]
 (println line))
abc
defg

Clojure
nil
user=> (with-open [rdr (java.io.BufferedReader.
(java.io.FileReader. "abc.txt"))]
  (doseq [line (line-seq rdr)]
   (println line)))
abc
defg

Clojure
nil
Clojure入門
Clojure入門
Clojure入門
Clojure入門
Clojure入門
Clojure入門
Clojure入門

Clojure入門