Bu, SICP Book Chapter 3.5.2 ile ilgili bir sorudur.SICP Sonsuz Akışlar (Bölüm 3.5.2)
Diğer programlama dillerinde bir akış veri yapısı uyguluyorum. Ve şu snippet'i doğru anladığımdan emin değilim. Ben (cons-stream n (integers-starting-from (+ n 1))))
yürüterek bir değer döndürmek işlevini çalıştırır (integers-starting-from (+ n 1))
de anlaşıldığı kadarıyla
(define (integers-starting-from n)
(cons-stream n (integers-starting-from (+ n 1))))
(define integers (integers-starting-from 1))
. cons-stream
'un ikinci resmi parametresi (integers-starting-from (+ n 1))
olduğundan ve ()
tarafından eklendiği için, yürütmeyi geciktirmek yerine işlevi tekrar tekrar ve tekrar yürütecektir.
Bu parçacığı uygulamadan önce gördüğüm kadarıyla, aşağıdaki tamsayı yürütülecek akışın saniye öğesinden önce sonsuz bir özyinelemeye yol açacaktır.
Neden bu, lecture sırasında gösterildiği gibi şema için çalışıyor gibi görünüyor? Gönderen
benim o artık şöyle bir şey yazılmalıdır anlama:
(define (integers-starting-from n)
(cons-stream n (lambda() (integers-starting-from (+ n 1)))))
(define integers (integers-starting-from 1))
bu şema (integers-starting-from (+ n 1))
yerine getirilmesini geciktiremez büyü türlü sahip olduğu anlamına gelir mi?
Biraz farklı bir akış stilinin uygulanması için, [blogum] 'da da görebileceğiniz [SRFI-41] (http://srfi.schemers.org/srfi-41/) sayfasına bakın. /programmingpraxis.com/essays/#srfi41streams). Belgede "cons-stream" in uygulanışı ayrıntılı olarak açıklanmaktadır. – user448810