Dil rehberi
Soz söz dizimini çalışan örneklerle öğren.
Söz v0.3.0 dil çekirdeği: sözlükler, dene/yakala, güvenli dosya API'leri, aktar modülleri ve mevcut temel söz dizimi.
eger, degilse, islev ve don gibi Türkçe sözcüklerin ASCII biçimlerini kabul eder. eğer, değilse, işlev ve dön anahtar kelime değildir. Metinlerde Türkçe karakter kullanabilirsiniz.Söz dizimi
Yorumlar
# karakterinden satır sonuna kadar olan bölüm çalıştırılmaz. Yorumları niyeti açıklamak için kullanın.
# Bu satir calistirilmaz.yaz("Kod calisti") # Satir sonu yorumuKod calisti
Söz dizimi
Değişkenler
Ayrı bir tanımlama anahtar kelimesi yoktur. İlk atama değişkeni oluşturur, sonraki atamalar günceller.
sayac = 0sayac = sayac + 1yaz(sayac)1
Söz dizimi
Sayılar
Tam ve ondalıklı gösterimler aynı sayı türünde tutulur; .5 gibi başında sıfır olmayan yazım geçerlidir.
ogrenci_sayisi = 32ortalama = 87.5yarim = .5yaz(ortalama + yarim)88
Söz dizimi
Metinler
Metinler çift tırnakla yazılır. İçerik UTF-8 olabilir; \n, \t, \" ve \\ gibi kaçışlar desteklenir.
isim = "Deniz"mesaj = "Merhaba dünya"yaz(mesaj + ", " + isim)Merhaba dünya, Deniz
Söz dizimi
Boolean
Mantık sabitleri dogru ve yanlis biçimindedir. ve, veya ve degil kısa devreli mantık işlemleridir.
aktif = dogruyetkili = yanlisyaz(aktif ve degil yetkili)dogru
Söz dizimi
Boş değer
bos değer yokluğu temsil eder. Koşullarda bos, yanlis, 0, boş metin ve boş liste false kabul edilir.
sonuc = boseger degil sonuc: yaz("Sonuc yok")Sonuc yok
Söz dizimi
Operatörler
Söz aritmetik, karşılaştırma ve mantık operatörlerini; %, // ve ** işlemlerini destekler.
yaz(10 % 3)yaz(10 // 3)yaz(2 ** 4)yaz(2 ** 3 ** 2)yaz(-10 // 3)yaz(-10 % 3)1 3 16 512 -4 2
Söz dizimi
Koşullar
eger ile başlayın, sıfır veya daha fazla yoksa dalı ekleyin ve isteğe bağlı degilse ile bitirin.
puan = 75 eger puan >= 85: yaz("Cok iyi")yoksa puan >= 50: yaz("Gecti")degilse: yaz("Kaldi")Gecti
Söz dizimi
While döngüsü
iken döngüsü, koşul doğru kaldığı sürece girintili gövdeyi çalıştırır.
i = 0iken i < 3: yaz(i) i = i + 10 1 2
Söz dizimi
Tekrar döngüsü
tekrar ... icinde ... yalnızca liste üzerinde dolaşır. aralik bir sayı listesi üretir.
tekrar i icinde aralik(0, 3): yaz(i)0 1 2
Söz dizimi
kir
kir, söz dizimsel olarak içinde bulunduğu en yakın döngüyü bitirir.
tekrar i icinde aralik(0, 10): eger i == 3: kir yaz(i)0 1 2
Söz dizimi
devam
devam, en yakın döngünün kalan gövdesini atlayıp sonraki tura geçer.
tekrar i icinde aralik(0, 5): eger i == 2: devam yaz(i)0 1 3 4
Söz dizimi
İşlevler
islev ile parametreli fonksiyon tanımlayın. Argüman sayısı parametre sayısıyla eşleşmelidir.
islev topla(a, b): don a + b yaz(topla(5, 3))8
Söz dizimi
don
don ifade bir değer döndürür. Yalın don veya sona ulaşan işlev bos döndürür; don yalnız işlev içinde kullanılabilir.
islev selamla(isim): eger isim == "": don don "Merhaba " + isim yaz(selamla("Soz"))Merhaba Soz
Söz dizimi
Listeler
Listeler farklı Soz değerlerini tutabilir. Atama kopya üretmez; alias'lar aynı liste mutasyonunu paylaşır.
sayilar = [10, 20, 30]ikinci = sayilarekle(ikinci, 40)yaz(sayilar)[10, 20, 30, 40]
Söz dizimi
İndeks okuma
Liste indeksleri sıfırdan başlar. Negatif, ondalık veya sınır dışı indeks çalışma zamanı hatasıdır.
sayilar = [10, 20, 30]yaz(sayilar[1])20
Söz dizimi
İndeks güncelleme
Bir liste elemanına atama yapabilir; iç içe indeks hedeflerini de güncelleyebilirsiniz.
sayilar = [10, 20, 30]sayilar[1] = 50matris = [[1, 2], [3, 4]]matris[1][0] = 8yaz(sayilar)yaz(matris)[10, 50, 30] [[1, 2], [8, 4]]
Söz dizimi
Built-in fonksiyonlar
v0.3.0; G/Ç, dönüşüm, tür, liste, sözlük, metin ve güvenli dosya işlemlerini kapsayan 25 yerleşik fonksiyon sunar.
parcalar = bol("bir,iki,uc", ",")ekle(parcalar, "soz")yaz(birlestir(parcalar, " | "))bir | iki | uc | soz
Söz dizimi
Sözlükler
Metin literal anahtarlı sözlükler ekleme sırasını korur. Atama kopya üretmez; alias'lar aynı mutasyonları paylaşır.
kullanici = {"isim": "Ada", "notlar": [80, 90]}kullanici["sehir"] = "Istanbul"yaz(kullanici["isim"])yaz(anahtarlar(kullanici))Ada [isim, notlar, sehir]
Söz dizimi
dene/yakala ve hata değeri
Beklenen runtime hataları yakalanabilir. hata yalnızca yakala bloğunun yerel kapsamındadır; güvenlik limitleri ile lexer/parser hataları fatal kalır.
dene: sayi("abc")yakala hata: yaz(tur(hata)) yaz(metin(hata))hata Gecersiz sayi metni: abc
Söz dizimi
Güvenli dosya okuma ve yazma
Relative yollar sabit sandbox kökü içinde kalır. Yazma create-only'dir; mevcut dosya ancak üçüncü dogru argümanıyla değiştirilir.
dosya_yaz("sonuc.txt", "42\n")yaz(dosya_oku("sonuc.txt"))dosya_yaz("sonuc.txt", "43\n", dogru)42
Söz dizimi
Çok dosyalı programlar
aktar yalnız dosya başındaki kesintisiz import bölümünde kullanılır. Relative .soz yollar import eden dosyaya göre çözülür; alias, namespace ve olarak söz dizimi yoktur.
aktar "lib/matematik.soz" yaz(topla(5, 3))8