พื้นที่ฝึก

Clojure

เส้นทางฝึก Clojure ตั้งแต่ศูนย์

นิยามก่อน

Clojure คืออะไร

Clojure ใช้เขียนคำสั่งที่ชัดเจน ที่นี่เรียนเป็น เส้นทางฝึก Clojure ตั้งแต่ศูนย์ เริ่มจากภาพเดียว input ผ่านขั้นตอนแล้วกลายเป็น output

ข้อมูลรันขั้นต่ำไฟล์ main.cljรัน clojure -M main.cljนิสัย เรียน Clojure ทีละส่วนเล็ก แล้วพิมพ์ตัวอย่างสั้นและรัน
โปรแกรม

ชุดคำสั่งที่ทำงานตามลำดับ

ค่าและตัวแปร

ค่าคือข้อมูล ตัวแปรคือชื่อที่เก็บข้อมูล

ฟังก์ชัน

งานย่อยที่มีชื่อ รับ input และสร้างผลลัพธ์

runtime

Clojure CLI รันโค้ดจาก main.clj

โค้ดแรกที่อ่านง่าย

ผลลัพธ์ของโปรแกรม

entry point output syntax println
(println 42)
ผลลัพธ์ 42

ตระกูลภาษา

ผังตระกูล Clojure

ดูว่า Clojure มาจากไหน ใกล้กับภาษาใด และควรเรียนอะไรต่อ

ราก
LispSchemeJava
ปัจจุบันClojureตระกูล functional และ logic
ตระกูลตระกูล functional และ logic
เหมาะกับ

เหมาะกับ เส้นทางฝึก Clojure ตั้งแต่ศูนย์

เริ่มจากศูนย์

1อ่านกฎหนึ่งข้อ2ทายผลลัพธ์3พิมพ์จากความจำ4รันการตรวจ5ทำซ้ำโดยเปลี่ยนหนึ่งจุด

คลังคำถาม

ค้นหาก่อนฝึก

เลือกขั้นหรือค้นหาแบบฝึกของภาษานี้ แล้วเปิดข้อที่ต้องการทันที

18 รายการ
Q 1ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 1

Clojure ข้อ 1 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 2ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 2

Clojure ข้อ 2 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 3ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 3

Clojure ข้อ 3 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 4ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 4

Clojure ข้อ 4 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 5ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 5

Clojure ข้อ 5 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 6ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 6

Clojure ข้อ 6 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 7ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 7

Clojure ข้อ 7 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 8ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 8

Clojure ข้อ 8 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 9ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 9

Clojure ข้อ 9 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 10ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 10

Clojure ข้อ 10 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 11ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 11

Clojure ข้อ 11 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 12ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 12

Clojure ข้อ 12 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 13ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 13

Clojure ข้อ 13 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 14ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 14

Clojure ข้อ 14 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

Q 15ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 15

Clojure ข้อ 15 เลือกคำอธิบายที่ตรงกับ function ที่ใช้ซ้ำได้ ที่สุด

Q 16ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 16

Clojure ข้อ 16 เลือกคำอธิบายที่ตรงกับ collection พื้นฐาน ที่สุด

Q 17ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 17

Clojure ข้อ 17 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

Q 18ตัวเลือกขั้น 1 นิยาม

Clojure ข้อ 18

Clojure ข้อ 18 เลือกคำอธิบายที่ตรงกับ ตั้งชื่อให้ค่า ที่สุด

ปรนัย

Clojure ข้อ 1

Q 1ตัวเลือกใหม่

Clojure ข้อ 1 เลือกคำอธิบายที่ตรงกับ พิมพ์ค่าออกมา ที่สุด

(println 42)

อ้างอิง

รูปแบบของ main.clj

Clojure CLIclojure -M main.clj
ทวนจากความจำอ่านจุดเล็กแล้วเขียนใหม่โดยไม่ดู
ไล่โค้ดเขียนค่าตัวแปรทีละบรรทัดก่อนรัน
พิมพ์เองคัดลอกให้น้อย พิมพ์ให้มาก แล้วแก้ error ทีละจุด

entry point output syntax println

ผลลัพธ์ของโปรแกรม

(println 42)
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types def

ค่าและชื่อ

(def total 42)
(println total)
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection Vector

ฟังก์ชันและ collection

(defn add [a b]
  (+ a b))

(def scores [40 2])
(println (count scores))
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks