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) => #tbüyüklük küçüklük ve büyük eşitlik gibi ifadeler normal matematikteki
(= 42 #f) -->ERROR!!!
(= 42 42.0) => #t
(< 3 2) => #f
(>= 4.5 3) => #t
gibidir.
(< 3 2) => #fmaksimum ve minumum değerleri bulmak için max ve min
(>= 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ş gibi
davranır.
(- 4) => -4
(/ 4) => 1/4
kullanılır.
(max 1 3 4 2 3) => 4karakterler /# ön ekiyle tanımlanırlar. #\c , c karakteridir.
(min 1 3 4 2 3) => 1
#\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) => #tdefine ile global değişken ataması yapabiliriz.
(char #\a #\b) => #t
(char>=? #\a #\b) => #f
karakterleri büyüklük küçüklük hassasiyeti olmadan karşılaştırma yapmak
iç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üçük
harflere 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çin
quote 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 xyz 5)
xyz
=> 5string-append ile ekleme yapabiliriz
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 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 yorum:
Merhaba çağdaş :) sözlerime nasıl başlıyacağım bilemiyorum :D
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 :=)
ortak nokta pyton=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 =)
Yorum Gönder