Dil turu
Zee'nin çalışan yüzeyi, kolaydan zora. Buradaki her örnek gerçek derleyiciden geçer; Çalıştır ile tarayıcıda dene.
Okuma anahtarı
Zee'de ayrılmış anahtar kelime yoktur. Cümlenin ne yaptığını son kelimesi, yani yüklemi söyler: yaz, olsun, tekrarla, döndür. Türkçenin yüklem-sonlu yapısı dilin ayrıştırma kuralıdır. Bu sitedeki renklendirme de yüklemi vurgular.
"Dünyaya merhaba" yaz
isim "Ayşe" olsun
"Benim adım " ile isim yazDeğerler ve akış
Değerler
Ad olsun ile bağlanır; türü çıkarılır ve sonradan değişmez. Ondalık bitişik virgülle yazılır ve onluk aritmetikle hesaplanır.
ad "Zeynep" olsun
yaş 7 olsun
boy 1,22 olsun
hazır doğru olsun
"Merhaba " ile ad yaz
0,1 ile 0,2 nin toplamı yazKoşullar
Koşul da yüklemle biter: -se/-sa. değilse ile zincirlenir; ve ile veya aynı koşulda karışmaz.
yaş 7 olsun
yaş 8 veya daha büyükse
"Programlamaya başlayabilirsin!" yaz
değilse
"Biraz daha oyun zamanı" yazDöngüler
Dört döngü: kez tekrarla, aralıkta her … için, olduğu sürece ve olana kadar tekrarla. Sayıya gelen ek ayrı yazılır: 1 den.
3 kez tekrarla
"Merhaba" yaz
1 den 10 a kadar her sayı için
sayı çiftse
sayıyı yazVeri yapıları
Listeler
her sayı için listeyi örtük çoğuldan bulur: sayı → sayılar. Metinler Türk alfabesine göre sıralanır.
sayılar 3, 7, 1, 9 listesi olsun
sayılara 5 ekle
"Adet: " ile sayıların adedi yaz
sıralı sayıların sıralanmışı olsun
sıralının json metni yazSözlükler
Ekleme sırası korunur; gezme her çalışmada aynı sırayı verir. Metin dönüşümleri Türkçe kurallıdır: İ↔i, I↔ı.
yaşlar boş sözlük olsun
yaşların "Zeynep" değeri 7 olsun
yaşların "Ada" değeri 9 olsun
yaşlardaki her ad için
ad ile ": " ile yaşların ad değeri yaz
cümle "Türkçe düşün, Türkçe yaz" olsun
cümlenin büyük harflisi yazYapılar
Alan erişimi iyelik ekiyle yapılır: kitabın adı. Yapı listeleri kayıt tablosudur ve doğrudan JSON'a dönüşür.
yapı Kitap
ad Metin
yazar Metin
yıl TamSayı
kitap yeni Kitap olsun
kitabın adı "Küçük Prens" olsun
kitabın yazarı "Antoine de Saint-Exupéry" olsun
kitabın yılı 1943 olsun
raf boş liste olsun
rafa kitabı ekle
rafın json metni yazİşlemler
Açık imzalı işlem
Parametreler gövdenin başında … al satırlarıdır, değer döndür ile çıkar. Çağrı Türkçe cümle gibidir: argüman + için + işlem adı.
işlem yarısını bul
sayıyı Ondalık olarak al
Ondalık döndürür
sonuç sayının 2 ye bölümü olsun
sonucu döndür
yarım 7 için yarısını bul olsun
yarım yazDesen eşleştirme
göre bir değeri dallara ayırır; değilse kalan durumları toplar.
şekil "kare" olsun
şekle göre
"daire" ise
"Köşesi yok" yaz
"kare" ise
"4 köşesi var" yaz
değilse
"Bu şekli tanımıyorum" yazSeçenek ve Sonuç
Zee'de null yoktur. Olmayabilen değer bir türdür, beklenen hata da bir değerdir.
Seçenek
yok döndür içeren işlem Seçenek üretir. bulunanın değeri yalnız varsa dalında okunabilir; dal dışında derleme hatasıdır.
işlem ilk çift sayıyı bul
sayıları al
her sayı için
sayı çiftse
sayıyı döndür
yok döndür
bulunan 3, 8, 5 listesi için ilk çift sayıyı bul olsun
bulunan varsa
"Bulundu: " ile bulunanın değeri yaz
değilse
"Çift sayı yok" yazSonuç
Beklenen hatalar … dene ile Sonuç'a dönüşür. Hata değeri kod, neden ve veri taşıyan yapılandırılmış bir zincirdir. Bu örnek girdi ister; çalışma alanındaki girdi kutusuyla dene.
"Yaşın kaç?" diye sor
sonuç yanıtın sayısını almayı dene olsun
sonuç başarılıysa
"Sayı aldım: " ile sonucun değeri yaz
değilse
"Bu bir sayı değil: " ile sonucun hatası yazTestler
Testler dilin parçasıdır. dil dene onları taze ortamda koşar; rastgelelik, saat ve dosyalar test dünyasından gelir, bu yüzden aynı test her makinede aynı sonucu verir.
işlem faktöriyelini hesapla
sayıyı TamSayı olarak al
TamSayı döndürür
sayı 1 den küçükse
1 döndür
bir_eksiği sayı ile 1 in farkı olsun
alt bir_eksiği için faktöriyelini hesapla olsun
sonucu sayı ile altın çarpımı olsun
sonucu döndür
test "faktöriyel doğru hesaplanır"
sonuç 5 için faktöriyelini hesapla olsun
sonuç 120 ye eşit olmalı
sonuç 5 için faktöriyelini hesapla olsun
"5! = " ile sonuç yazWeb
Yöntemli rotalar, kontrollü durum kodları, oturum, CSRF ve rol denetimi dilin yüzeyindedir. Yerelde dil çalıştır --deneysel-web ile denenir; üretimde Zee worker'ı TLS sonlandıran bir ters vekilin arkasında --web-proxy profiliyle koşar.
8080 kapısında sunucu başlat
GET "/" adresine istek geldiğinde
"Merhaba, web!" yanıtını gönder
GET "/durum" adresine istek geldiğinde
"çalışıyor" yanıtını gönder
GET "/hazir" adresine istek geldiğinde
"hazır değil" yanıtını 503 durumuyla gönderDerleyici hattı
Her katman bir sözleşme taşır. Bağımlılık yönleri, public API, semantic regresyon korpusu, spec maddeleri ve sürüm artefaktları CI kapılarıyla denetlenir.
Aynı derleyici yerel CLI'da, LSP sunucusunda ve bu sitedeki WebAssembly çalışma alanında koşar. Normatif davranış spec belgelerindedir.
Sınırlar
Zee henüz 1.0 değildir. Dil yüzeyi core freeze altındadır; yeni özellik ancak gerçek ürün ihtiyacı, minimal reproducer ve kalıcı kanıtla girer. Bugün kapalı tutulan alanlar bilinçlidir: örneğin değişkenden HTTP durum kodu üretmek V1'de kapalıdır.
Yol haritası →