LISP - ไวยากรณ์พื้นฐาน
หน่วยการสร้างพื้นฐานใน LISP
โปรแกรม LISP ประกอบด้วยส่วนประกอบพื้นฐานสามแบบ -
atom
list
string
อัน atomคือตัวเลขหรือสตริงของอักขระที่อยู่ติดกัน ประกอบด้วยตัวเลขและอักขระพิเศษ
ต่อไปนี้เป็นตัวอย่างของอะตอมที่ถูกต้อง -
hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123
ก list คือลำดับของอะตอมและ / หรือรายการอื่น ๆ ที่อยู่ในวงเล็บ
ต่อไปนี้เป็นตัวอย่างของรายการที่ถูกต้อง -
( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )
ก string คือกลุ่มของอักขระที่อยู่ในเครื่องหมายคำพูดคู่
ต่อไปนี้เป็นตัวอย่างของสตริงที่ถูกต้อง -
" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Point'! "
การเพิ่มความคิดเห็น
สัญลักษณ์อัฒภาค (;) ใช้สำหรับระบุบรรทัดข้อคิดเห็น
ตัวอย่างเช่น,
(write-line "Hello World") ; greet the world
; tell them your whereabouts
(write-line "I am at 'Tutorials Point'! Learning LISP")
เมื่อคุณคลิกปุ่ม Execute หรือพิมพ์ Ctrl + E LISP จะดำเนินการทันทีและผลลัพธ์ที่ได้กลับมาคือ -
Hello World
I am at 'Tutorials Point'! Learning LISP
จุดสำคัญบางประการก่อนที่จะย้ายไปที่ถัดไป
ต่อไปนี้เป็นประเด็นสำคัญที่ควรทราบ -
การดำเนินการตัวเลขพื้นฐานใน LISP คือ +, -, * และ /
LISP แทนการเรียกใช้ฟังก์ชัน f (x) เป็น (fx) เช่น cos (45) เขียนเป็น cos 45
นิพจน์ LISP ไม่คำนึงถึงขนาดตัวพิมพ์ cos 45 หรือ COS 45 เหมือนกัน
LISP พยายามประเมินทุกอย่างรวมถึงอาร์กิวเมนต์ของฟังก์ชัน องค์ประกอบสามประเภทเท่านั้นที่เป็นค่าคงที่และส่งคืนค่าของตัวเองเสมอ
Numbers
จดหมาย t, ที่ย่อมาจากตรรกะจริง
มูลค่า nil, ซึ่งย่อมาจากตรรกะเท็จเช่นเดียวกับรายการว่าง
ข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับแบบฟอร์ม LISP
ในบทที่แล้วเราได้กล่าวถึงกระบวนการประเมินผลของรหัส LISP จะดำเนินการตามขั้นตอนต่อไป
ผู้อ่านแปลสตริงของอักขระเป็นวัตถุ LISP หรือ s-expressions.
ผู้ประเมินกำหนดไวยากรณ์ของ Lisp formsที่สร้างขึ้นจาก s-expression การประเมินระดับที่สองนี้กำหนดไวยากรณ์ที่กำหนดว่านิพจน์ใดเป็นรูปแบบ LISP
ตอนนี้แบบฟอร์ม LISP อาจเป็นได้
อะตอม
รายการว่างหรือไม่ใช่รายการ
รายการใด ๆ ที่มีสัญลักษณ์เป็นองค์ประกอบแรก
ผู้ประเมินทำงานเป็นฟังก์ชันที่ใช้รูปแบบ LISP ที่ถูกต้องเป็นอาร์กิวเมนต์และส่งคืนค่า นี่คือเหตุผลที่เราใส่ไฟล์LISP expression in parenthesis, เนื่องจากเรากำลังส่งนิพจน์ / แบบฟอร์มทั้งหมดไปยังผู้ประเมินเป็นอาร์กิวเมนต์
หลักการตั้งชื่อใน LISP
ชื่อหรือสัญลักษณ์สามารถประกอบด้วยอักขระที่เป็นตัวเลขและตัวอักษรจำนวนเท่าใดก็ได้นอกเหนือจากช่องว่างวงเล็บเปิดและปิดเครื่องหมายคำพูดคู่และเดี่ยวเครื่องหมายแบ็กสแลชลูกน้ำเครื่องหมายทวิภาคอัฒภาคและแถบแนวตั้ง ในการใช้อักขระเหล่านี้ในชื่อคุณต้องใช้อักขระหลีก (\)
ชื่อสามารถมีตัวเลขได้ แต่ไม่ใช่ตัวเลขทั้งหมดเพราะมันจะถูกอ่านเป็นตัวเลข ในทำนองเดียวกันชื่อสามารถมีจุดได้ แต่ไม่สามารถสร้างเป็นจุดทั้งหมดได้
การใช้เครื่องหมายคำพูดเดี่ยว
LISP จะประเมินทุกอย่างรวมถึงอาร์กิวเมนต์ของฟังก์ชันและรายชื่อสมาชิก
ในบางครั้งเราจำเป็นต้องใช้อะตอมหรือรายการตามตัวอักษรและไม่ต้องการให้ประเมินหรือถือว่าเป็นการเรียกใช้ฟังก์ชัน
ในการทำเช่นนี้เราต้องนำหน้าอะตอมหรือรายการด้วยเครื่องหมายอัญประกาศเดี่ยว
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้
สร้างไฟล์ชื่อ main.lisp แล้วพิมพ์รหัสต่อไปนี้ลงไป
(write-line "single quote used, it inhibits evaluation")
(write '(* 2 3))
(write-line " ")
(write-line "single quote not used, so expression evaluated")
(write (* 2 3))
เมื่อคุณคลิกปุ่ม Execute หรือพิมพ์ Ctrl + E LISP จะดำเนินการทันทีและผลลัพธ์ที่ได้กลับมาคือ -
single quote used, it inhibits evaluation
(* 2 3)
single quote not used, so expression evaluated
6