6 Haziran 2007 Çarşamba

scheme karalamalar


sicp kitabı ile schemeyi kurcalıyorum bakalım noolcak =)

MIT nin GNU schemesini kullanamadım (run emacsdakinden farklıydı bulamadım) onun yerine DrScheme kullanıyorum. dosyalar .scm olarak kaydediliyor. Dili içgüdüsel olarak standart seçtim (Language: Standard (R5RS).)

linuxda açmak için badis@badis-laptop:~$ drscheme yazmanız yeterlidir.
kaydettiğiniz betiği de badis@badis-laptop:~$ drscheme betikadi.scm şeklinde geri çağırıp üstünde çalışabilirsiniz.


(+ 333 234)
567
(* 12 5 4)
240
(- 11 3 )
8
(+ (* 4 5) (- 4 6))
18
(+(* 3(+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6))
57

(- 4 5 6 7)
-14

en son yaptığımız çıkarmada ilk elemandan diğer üçünü çıkarmaktadır. schemede common lisp deki gibi önce komut ardından listenin elemanları geliyor.


tanımlamaları define ile yaparız.

(define boy 20)
boy
(* 5 boy)


(define pi 3.141592654)
(define yaricap 5)
(define cevre (* 2 pi yaricap))
cevre
(define alan (* pi yaricap yaricap))
alan



(* (+ 2 (* 4 6))
(+ 3 5 7))

bu işlemin ağacına bakalım: 3,5,7 bir dallanma 4,6 ayrı ancak 2 ile birleşiyor. aşağıda agacı mevcuttur kitaptan copy paste edilmiştir.
(kendime not okulun sitesinde bulduğum ağaç slaytlarına çalış devre teorisinde gördüğün graflar yetmeyecektir, teorini güçlendir!)



bana muhteşem gelen bir şey okudum az önce. fonksiyonu anında tanımlıyoruz ve anında kullanabiliyoruz. çok güzel bir özellik bence.

temel yapısı:

(define (fonksiyon-adı paramatre1 par2..) (işlem par1 par2..))


(define (kare x) (* x x))
(kare 7)
(kare (+ 4 5))
(kare (kare 4))
(define (kareler-toplamı x y)(+ (kare x) (kare y)))
(kareler-toplamı 6 8)
(define (f z)
(kareler-toplamı (* z z) (* z 4)))
(f 5)


DrScheme'nin güzel bir özelliği de imleç paranteze geldiğinde parantezin bitimine dek renklendirmesi böylece hata yapmamı önlüyor. Dallanmanın nasıl olduğunu kolayca anlamamı sağlıyor.

Hiç yorum yok:

 
eXTReMe Tracker