scheme eskizlerine devam.
Teach Yourself Scheme in Fixnum Days
kaynağına bakıyorum ordan da bazı karalamalar.
ilk iş merhaba dünya olayına girişmişler=)
;ilk program
(begin
(display "Merhaba, Dünya!")
(newline))
noktalı virgül yorumdur.
Boolean cebir elemanları 1 = #t (true dan), 0= #f (false dan) olarak tanımlanmıştır.
not boolean tersi işlemidir. sıfırsa bir birse sıfıra çevirir.
(not #f) => #t(not #t) => #f(not "Hello, World!") => #f
boolean? boolean cebiri için tanımlanmış ifade olup olmadığına bakar.
(boolean? #t) => #t(boolean? "Hello, World!") => #f
scheme de number kavramı (sayı) bütün tam sayıları (integers), rasyonel sayıları (rationals),reel (reals) ve karmaşık (complex) sayıları kapsar. bir verinin sayı olup olmadığı number?sorgusu ile yapılır. diğer veri yapısı sorguları da aşağıdaki gibidir. (number? 42) => #t(number? #t) => #f (complex? 2+3i) => #t (real? 2+3i) => #f(real? 3.1416) => #t(real? 22/7) => #t(real? 42) => #t (rational? 2+3i) => #f(rational? 3.1416) => #t(rational? 22/7) => #t (integer? 22/7) => #f(integer? 42) => #t

#b ikili sistemi temsil eder. #b1100 yazdığımızda onluk sisteme dönüştürülür (12).
#o sekizlik, #x ise 16lık hex sistemini temsil eder.
eqv? eşit olup olmadığını test eder.
(eqv? 13 13)
(eqv? 13 #t)
(eqv? 13 #f)
(eqv? 13 13.0)
ayrıca sayılar için = de kullanılır.
(= 42 42) => #t(= 42 #f) -->ERROR!!!(= 42 42.0) => #t (< 3 2) => #f(>= 4.5 3) => #t
büyüklük küçüklük ve büyük eşitlik gibi ifadeler normal matematikteki
gibidir.
(< 3 2) => #f(>= 4.5 3) => #t üssünü almak expt ile olur. (expt 2 3) => 8(expt 4 1/2) => 2.0 ilk ifade yoksa - de ilk ifade sıfırmış gibi / de de 1 miş gibidavranır. (- 4) => -4(/ 4) => 1/4
maksimum ve minumum değerleri bulmak için max ve min
kullanılır.
(max 1 3 4 2 3) => 4(min 1 3 4 2 3) => 1
karakterler /# ön ekiyle tanımlanırlar. #\c , c karakteridir. #\newline ,
#\tab gibi kullanılabilirler. space tuşu #\ veya #\space şeklinde gösterilebilir.
Bir verinin karakter olup olmadığı char? ile sorgulanabilir.
(char? #\c) => #t(char? 1) => #f(char? #\;) => #t karakterlerin karşılaştırılması dachar=?,char,char<=?,char>?,char>=?şekillerinde yapılabilir.
(char=? #\a #\a) => #t(char #\a #\b) => #t(char>=? #\a #\b) => #f karakterleri büyüklük küçüklük hassasiyeti olmadan karşılaştırma yapmakiçin char-ci kullanılır. (char-ci=? #\a #\A) => #t(char-ci #\a #\B) => #t küçük harflerin büyük harflere dönüştürülmesi char-upcase, büyüklerin de küçükharflere dönüştürülmesi char-downcase komutları ile yapılır.(char-downcase #\A) => #\a(char-upcase #\a) => #\A Semboller değişken tanımlamakta kullanılırlar. sembolleri belirtmek içinquote veya ' kullanılır. (buraları ben de pek anlamadım.) (quote xyz)=> xyz 'E (quote E) sorgulaması symbol? ile yapılır. (symbol? 'xyz) => #t(symbol? 42) => #f Shceme de sembollerin büyük küçük duyarlılığı yoktur. (eqv? 'Calorie 'calorie)=> #t
define ile global değişken ataması yapabiliriz.
(define xyz 5)
xyz
=> 5 set! ile değişkenin değerini değiştirebiliriz. (set! xyz #\c)xyz=> #\c string harfleri birleştirmeyi sağlar. (string #\M #\e #\r #\h #\a #\b #\a)=>"Merhaba" string-ref ise istenen sıradaki harfi verir. (define aa "Merhaba ; Merhaba!") (string-ref aa 9)=>#\space (string-ref aa 0)=>#\M (string-ref aa 1)=>#\e
string-append ile ekleme yapabiliriz
string-append aa " mrb." " slm.")
=>"Merhaba ; Merhaba! mrb. slm."
define ve string i birlikte kullanarak da tanımlama yapabiliriz.
(define mrb (string #\M #\e #\r #\h #\a #\b #\a))
mrb
=>"Merhaba"
string-set! ile dizideki karakterlerden istediğimizi değiştirebiliriz.
(string-set! mrb 1 #\i)
mrb
=>"Mirhaba"

matematik dünyasında sonsuz listelerle ilgili bir makale bir makale buldum.
2 Comments to “scheme eskizlerine devam.”
RSS feed for comments on this post. TrackBack URI

Ledasi Yazılım / Medya CRM 1
By cagdas, 09 June 2007 @ 13:26
ortak nokta python=P abi sanırım çalışması lazım windowsta felan da yani orda clisp yükleyip çalıştırmıştım. kod yazılabiliyorsa çalıştırılabilir de sanırım. aslında örnek kodlara pek bakamamıştım hatırlatığı iyi oldu araştırayım biraz. sana da kolay gelsin =)
ilerleyen günlerdeki edit: drscheme ile çok kolay yapılabiliyor windowsta da.
By kostebek, 09 June 2007 @ 10:37
Merhaba çağdaş
sözlerime nasıl başlıyacağım bilemiyorum
Neyse gerçek manada güzel bir dile benziyor yalnız yine bir dil yine yazım kuralları yine fonksiyonlar teh teeeee… yani gerçekten bir ortak noktada buluşmalarının zamnı geldi bence.
Neyse dille yapılmış basit programlarıda eklersen çok güzel olur ha birde son olarak sormak istediğim ” yapılan programlar hangi platformlarda çalışıyor? Sadece linux ?”
kolay gelsin kocum :=)