พื้นที่ฝึก

Common Lisp

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

นิยามก่อน

Common Lisp คืออะไร

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

ข้อมูลรันขั้นต่ำไฟล์ main.lispรัน sbcl --script main.lispนิสัย เรียน Common Lisp ทีละส่วนเล็ก แล้วพิมพ์ตัวอย่างสั้นและรัน
โปรแกรม

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

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

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

ฟังก์ชัน

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

runtime

SBCL รันโค้ดจาก main.lisp

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

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

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

ตระกูลภาษา

ผังตระกูล Common Lisp

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

ราก
LispMaclispScheme
ปัจจุบันCommon Lispตระกูล functional และ logic
ตระกูลตระกูล functional และ logic
เหมาะกับ

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

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

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

คลังคำถาม

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

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

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

Common Lisp ข้อ 1

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

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

Common Lisp ข้อ 2

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

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

Common Lisp ข้อ 3

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

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

Common Lisp ข้อ 4

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

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

Common Lisp ข้อ 5

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

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

Common Lisp ข้อ 6

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

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

Common Lisp ข้อ 7

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

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

Common Lisp ข้อ 8

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

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

Common Lisp ข้อ 9

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

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

Common Lisp ข้อ 10

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

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

Common Lisp ข้อ 11

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

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

Common Lisp ข้อ 12

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

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

Common Lisp ข้อ 13

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

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

Common Lisp ข้อ 14

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

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

Common Lisp ข้อ 15

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

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

Common Lisp ข้อ 16

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

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

Common Lisp ข้อ 17

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

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

Common Lisp ข้อ 18

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

ปรนัย

Common Lisp ข้อ 1

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

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

(print 42)

อ้างอิง

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

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

entry point output syntax print

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

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

variables assignment types defparameter

ค่าและชื่อ

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

function collection List

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

(defun add (a b)
  (+ a b))

(defparameter *scores* '(40 2))
(print (length *scores*))
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks