blob: ea24e822a7734a485ed784a30a5945f6ded0141c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
(ns clojure-sample.core
(:gen-class))
(require '[clj-time.core :as t])
(require '[clj-time.format :as f])
;; Product record
(defrecord Product [id name available price])
;; Positional constructor
(def product1 (->Product "1" "T-Shirt 1" true 15.00))
;; Map constructor
(def product2 (map->Product
{:id "2"
:name "T-Shirt 2"
:available true
:price 20.00}))
;; Nested
(def product3 {:id "1"
:name "Product 1"
:available true
:sellers [{:id "1"
:name "Seller 1"
:stock 3},
{:id 2
:name "Seller 2"
:stock 5}]})
;; Set
(def categories #{"shirts" "shoes" "belts"})
;; List
(def wishlist '(1 2))
;; Recursion
(defn factorial [value] (cond
(<= value 1) 1
:else (* value (factorial (- value 1)))))
(def basic-formatter (f/formatter "YYYY-MM-dd hh:mm:ss"))
(defn now [] (f/unparse basic-formatter (t/now)))
(defn log
([] (println (now) "No message"))
([message] (println (now) message)))
(defn -main
[& args]
(println (:id product1))
(println (:name product2))
(println (:name (get (:sellers product3) 0)))
(println (first categories))
(println wishlist)
(println (factorial 5))
(log)
(log "Message"))
|