Lisp Dili Liste Örnekleri

Merhaba arkadaşlar, bu yazımızda DrRacket ile Listeler üzerinde biraz uğraşacağız. Öncelikle bir liste tanımlayıp bunun üzerinden devam edelim.

(define A(list 1 3 5 7))

şeklinde bir listemiz(dizimiz) olsun. Bunun içerisindeki tüm elemanları herhangi bir sayıda artıralım. Bunun için:

(define A(list 1 3 5 7))

(define (ekle liste x)
  (if(empty? liste) '()
     (cons
        (+ x (first liste))
        (ekle (rest liste) x )
     )
  )
)

(ekle A 3)

şeklinde kodumuzu yazıyoruz. Burada öncelikle if şartı ile gelen listemizin boş olmadığını kontrol ediyoruz. Eğer boş değilse listemizin ilk elemanını (first liste) alıyoruz ve bizim gönderdiğimiz x değeri ile topluyoruz. Ve geri kalan listemizi (rest liste) ile tekrar bu fonksiyona gönderip onun da ilk elemanına x kadar ekleme yapıyoruz. Bu şekilde eleman kalmayana dek sürüyor.

İşte çıktımız:

dr racket ile listedeki elemanlara sayı ekleme

Peki ya aldığımız sayıları bir fonksiyona göre artırmak istersek?

Hemen örneğini yapalım:

f(x)= 3x+2x^2+4 şeklinde bir fonksiyonumuz olsun ve listenin elemanlarını buranın içine gönderip çıktısını alalım.

(define A(list 1 3 5 7 9)) ; listemiz

(define (hesapla f liste) ;hesapla fonksiyonumuz
  (if(empty? liste) '() ;liste boş değilse devam et
     (cons
        (f (first liste)) ; gelen listenin ilk elemanını alıyoruz
        (hesapla f (rest liste)) ; gelen listenin ilk eleman hariç diğer
; elemanlarını tekrar gönderiyoruz
      )
   )
)

(define (fonk x)
  (+ (* x 3) (* 2 x x) 4) ; fonksiyonumuzu yazıyoruz 
)


(hesapla fonk A) ;hesapla adlı fonksiyona gönderiyoruz

kodumuz üstteki gibidir. Gelin çıktısına da bir bakalım:

[the_ad id=”514″]

drracket liste elemanları ile fonksiyon

 

çıktımız da yukarıdaki gibidir. Anlamadığınız veya hatalı gördüğünüz yerleri belirtirseniz sevinirim. Umarım faydalı olmuştur. Daha farklı örneklerde görüşmek üzere..

Bunlara Göz Atmak İsteyebilirsiniz

2 thoughts on “Lisp Dili Liste Örnekleri

  1. -5ax^2+12bx+b^3 LISP dilinde
    Bir fonksiyon yaZmamızI istiyor soru a, b,x parametrelerini alan yardımcı olabilir misiniz

    1. Verdiğim örnek ile bunu yapabilirsiniz diye düşünüyorum. Bildiğiniz gibi Lisp dilinde önce operatör gelmektedir. Bu şekilde fonksiyonunuzu verdiğim örneğe bakarak oluşturabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir