LISP - Loop

Mungkin ada situasi, ketika Anda perlu mengeksekusi sekumpulan kode beberapa kali. Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau sekelompok pernyataan beberapa kali dan berikut ini adalah bentuk umum dari pernyataan loop di sebagian besar bahasa pemrograman.

LISP menyediakan jenis konstruksi berikut untuk menangani persyaratan perulangan. Klik tautan berikut untuk memeriksa detailnya.

Sr.No. Bangun & Deskripsi
1 loop

Itu loopkonstruksi adalah bentuk iterasi paling sederhana yang disediakan oleh LISP. Dalam bentuknya yang paling sederhana, ini memungkinkan Anda untuk mengeksekusi beberapa pernyataan berulang kali hingga menemukan areturn pernyataan.

2 loop untuk

Loop for construct memungkinkan Anda mengimplementasikan for-loop seperti iterasi seperti yang paling umum dalam bahasa lain.

3 melakukan

Konstruksi do juga digunakan untuk melakukan iterasi menggunakan LISP. Ini memberikan bentuk iterasi yang terstruktur.

4 dotimes

Konstruksi dotimes memungkinkan perulangan untuk beberapa jumlah iterasi tetap.

5 lumba-lumba

Konstruksi dolist memungkinkan pengulangan melalui setiap elemen daftar.

Keluar Dengan Anggun Dari Blok

Itu block dan return-from memungkinkan Anda untuk keluar dengan anggun dari blok bersarang jika terjadi kesalahan.

Itu blockfungsi memungkinkan Anda untuk membuat blok bernama dengan tubuh yang terdiri dari nol atau lebih pernyataan. Sintaksnya adalah -

(block block-name(
...
...
))

Itu return-from function mengambil nama blok dan nilai kembalian opsional (default-nya adalah nil).

Contoh berikut menunjukkan ini -

Contoh

Buat file kode sumber baru bernama main.lisp dan ketik kode berikut di dalamnya -

(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)

Ketika Anda mengklik tombol Execute, atau mengetik Ctrl + E, LISP segera menjalankannya dan hasil yang dikembalikan adalah -

ENTERING-OUTER-BLOCK 
ENTERING-INNER-BLOCK 

ENTERING-OUTER-BLOCK 
ENTERING-INNER-BLOCK 
5 
LEFT-INNER-BLOCK 
LEAVING-OUTER-BLOCK