Soru: Bir sayı listesindeki bütün elemanların değerlerini bir arttıran kodu yazınız.

Çözen : Şadi Evren ŞEKER

Çözüm fonksiyonu:

(define (increment-list numbers)(cond [(empty? numbers) empty][else (cons (+ (first numbers) 1)(increment-list (rest numbers)))]))

Çözüm çalıştırması:

(increment-list (list 1 2 3 6 7 4 3))

Açıklama:

Fonksiyonun ismi increment-list olarak tanımlanmış ve bir parametre alınmıştır. Buradaki parametre “numbers” değişkenidir (variable).

Fonksiyon özyineli (recursive) olarak listenin üzerinden geçer. Bu sırada listenin sonuna geldiğini anlamak için empty? Fonksiyonu ile verilen parametrenin bitip bitmediğini kontrol eder.

Ayrıca her adımda listedeki ilk eleman “(first numbers)” ile alınara (+ (first numbers)) ile bir arttırılmakta ve cons fonksiyonu ile sonuç listesine eklenmektedir.

Fonksiyon çalışması listedeki diğer elemanlar üzerine (rest numbers) ile uygulanmakta bu sayede listeden her seferinde bir eleman alınmakta, listede eleman kalmayana kadar devam etmekte nihayet liste boş olunca sonuç listesi döndürülmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir