LISP - Döngüler

Bir kod bloğu bloğunu defalarca çalıştırmanız gerektiğinde bir durum olabilir. Bir döngü deyimi, bir deyimi veya deyim grubunu birden çok kez yürütmemize izin verir ve aşağıdaki, programlama dillerinin çoğunda bir döngü ifadesinin genel biçimidir.

LISP, döngü gereksinimlerini karşılamak için aşağıdaki yapı türlerini sağlar. Ayrıntılarını kontrol etmek için aşağıdaki bağlantıları tıklayın.

Sr.No. İnşa ve Açıklama
1 döngü

loopyapı, LISP tarafından sağlanan en basit yineleme biçimidir. En basit haliyle, bazı ifadeleri bulana kadar tekrar tekrar çalıştırmanıza izin verir.return Beyan.

2 döngü için

Oluşturma döngüsü, diğer dillerde en yaygın olan döngü benzeri yineleme uygulamanıza olanak tanır.

3 yapmak

Do yapısı, LISP kullanarak yineleme yapmak için de kullanılır. Yapılandırılmış bir yineleme biçimi sağlar.

4 nokta zamanları

Dotimes yapısı, bazı sabit sayıda yineleme için döngüye izin verir.

5 yapılacaklar listesi

Dolist yapısı, bir listenin her bir öğesi aracılığıyla yinelemeye izin verir.

Bloktan Sorunsuz Bir Şekilde Çıkma

block ve return-from herhangi bir hata durumunda herhangi bir iç içe bloktan zarif bir şekilde çıkmanızı sağlar.

blockişlevi, sıfır veya daha fazla ifadeden oluşan bir gövdeye sahip adlandırılmış bir blok oluşturmanıza olanak sağlar. Sözdizimi -

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

return-from işlev bir blok adı ve isteğe bağlı (varsayılan sıfırdır) bir dönüş değeri alır.

Aşağıdaki örnek bunu göstermektedir -

Misal

Main.lisp adlı yeni bir kaynak kodu dosyası oluşturun ve içine aşağıdaki kodu yazın -

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

Yürüt düğmesine tıkladığınızda veya Ctrl + E tuşlarına bastığınızda, LISP bunu hemen yürütür ve döndürülen sonuç -

ENTERING-OUTER-BLOCK 
ENTERING-INNER-BLOCK 

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