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