LISP - ลูป
อาจมีสถานการณ์เมื่อคุณจำเป็นต้องดำเนินการบล็อกรหัสจำนวนครั้ง คำสั่งแบบวนซ้ำทำให้เราสามารถดำเนินการคำสั่งหรือกลุ่มของคำสั่งได้หลายครั้งและต่อไปนี้เป็นรูปแบบทั่วไปของคำสั่งลูปในภาษาโปรแกรมส่วนใหญ่
LISP มีโครงสร้างประเภทต่อไปนี้เพื่อจัดการกับข้อกำหนดการวนซ้ำ คลิกลิงก์ต่อไปนี้เพื่อตรวจสอบรายละเอียด
ซีเนียร์ | สร้างและคำอธิบาย |
---|---|
1 | วน loopโครงสร้างเป็นรูปแบบการทำซ้ำที่ง่ายที่สุดที่จัดทำโดย LISP ในรูปแบบที่ง่ายที่สุดจะช่วยให้คุณสามารถเรียกใช้คำสั่งบางอย่างซ้ำ ๆ จนกว่าจะพบไฟล์return คำให้การ. |
2 | วนซ้ำสำหรับ ลูปสำหรับการสร้างช่วยให้คุณสามารถใช้การวนซ้ำเหมือนการวนซ้ำเหมือนที่ใช้กันทั่วไปในภาษาอื่น ๆ |
3 | ทำ โครงสร้าง do ยังใช้สำหรับการทำซ้ำโดยใช้ LISP มีรูปแบบการทำซ้ำที่มีโครงสร้าง |
4 | dotimes โครงสร้าง dotimes ช่วยให้สามารถวนซ้ำได้สำหรับการวนซ้ำบางส่วน |
5 | โลลิสต์ โครงสร้างโดลิสต์ช่วยให้สามารถวนซ้ำผ่านแต่ละองค์ประกอบของรายการได้ |
ออกจากบล็อกอย่างสง่างาม
block และ return-from ช่วยให้คุณสามารถออกจากบล็อกที่ซ้อนกันได้อย่างสง่างามในกรณีที่เกิดข้อผิดพลาด
blockฟังก์ชันช่วยให้คุณสร้างบล็อกที่มีชื่อโดยมีเนื้อความที่ประกอบด้วยคำสั่งเป็นศูนย์หรือมากกว่า ไวยากรณ์คือ -
(block block-name(
...
...
))
return-from ฟังก์ชันรับชื่อบล็อกและค่าส่งกลับ (ค่าเริ่มต้นคือศูนย์) ซึ่งเป็นทางเลือก
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงสิ่งนี้ -
ตัวอย่าง
สร้างไฟล์ซอร์สโค้ดใหม่ชื่อ main.lisp และพิมพ์รหัสต่อไปนี้ -
(defun demo-function (flag)
(print 'entering-outer-block)
(block outer-block
(print 'entering-inner-block)
(print (block inner-block
(if flag
(return-from outer-block 3)
(return-from inner-block 5)
)
(print 'This-wil--not-be-printed))
)
(print 'left-inner-block)
(print 'leaving-outer-block)
t)
)
(demo-function t)
(terpri)
(demo-function nil)
เมื่อคุณคลิกปุ่ม Execute หรือพิมพ์ Ctrl + E LISP จะดำเนินการทันทีและผลลัพธ์ที่ได้กลับมาคือ -
ENTERING-OUTER-BLOCK
ENTERING-INNER-BLOCK
ENTERING-OUTER-BLOCK
ENTERING-INNER-BLOCK
5
LEFT-INNER-BLOCK
LEAVING-OUTER-BLOCK