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