REPL - Etkileşimli Kabuk
BERK REPL (Read-Eval-Print Loop), hızlı prototipleme ve öğrenme için etkileşimli bir programlama ortamıdır. Python REPL gibi anında kod çalıştırma imkanı sağlar.
REPL Başlatma
# Basit başlatma
berk-lang repl
# Veya
berk-lang
Karşınıza şu ekran gelecek:
BERK v0.9.4 - Interactive Shell
Type ':help' for help, ':quit' to exit
berk>
Temel Kullanım
Basit İfadeler
berk> 2 + 2
4
berk> "Merhaba" + " Dünya"
"Merhaba Dünya"
berk> [1, 2, 3].uzunluk()
3
Değişken Tanımlama
berk> değişken x = 42
berk> değişken isim = "Ali"
berk> yazdır(isim + " - " + x)
Ali - 42
Fonksiyon Tanımlama
berk> fonksiyon topla(a: sayı, b: sayı) -> sayı yap
... dön a + b
... son
berk> topla(5, 3)
8
Özel Komutlar
| Komut | Açıklama |
|---|---|
:help | Yardım menüsü |
:quit / :q | REPL'den çık |
:clear | Ekranı temizle |
:reset | Tüm tanımları sıfırla |
:vars | Tanımlı değişkenleri listele |
:funcs | Tanımlı fonksiyonları listele |
:type | İfadenin tipini göster |
:load | Dosyayı yükle |
:save | Geçmişi dosyaya kaydet |
Kullanım Örnekleri
berk> :type 42
sayı
berk> :type "merhaba"
metin
berk> :vars
x: sayı = 42
isim: metin = "Ali"
berk> :load hesap.berk
✓ hesap.berk yüklendi
berk> :quit
Hoşça kalın!
Çok Satırlı İfadeler
berk> fonksiyon fibonacci(n: sayı) -> sayı yap
... eğer n <= 1 yap
... dön n
... son
... dön fibonacci(n-1) + fibonacci(n-2)
... son
berk> fibonacci(10)
55
Otomatik Tamamlama
Tab tuşu ile otomatik tamamlama:
berk> değişken liste = [1, 2, 3]
berk> liste.uz
uzunluk()
berk> liste.uzunluk()
3
Geçmiş (Navigation)
- ↑/↓: Geçmiş komutlarda gezin
- Ctrl+R: Geçmişte ara
- Ctrl+C: Mevcut satırı iptal et
- Ctrl+D: REPL'den çık
Modül Kullanımı
berk> kullan math;
berk> math::sqrt(16.0)
4.0
berk> kullan string;
berk> string::büyüt("merhaba")
"MERHABA"
Performans Ölçümü
berk> :time fibonacci(30)
Sonuç: 832040
Süre: 234 ms
Hata Ayıklama
berk> değişken x: sayı = "merhaba"
Error[E0308]: tip uyuşmazlığı
beklenen `sayı`, bulundu `metin`
berk> :last-error
Detaylı hata bilgisi...
Konfigürasyon
~/.berk/repl.toml dosyası ile özelleştirme:
[prompt]
style = "colorful" # minimal, colorful, classic
show_type = true # Tip bilgisi göster
[history]
max_size = 1000
save_path = "~/.berk/repl_history"
[keybindings]
clear = "Ctrl+L"
quit = "Ctrl+D"
REPL ile Öğrenme
Örnek 1: Fibonacci
berk> :load stdlib/examples/fibonacci.berk
berk> için i içinde 0..10 yap
... yazdır(fibonacci(i))
... son
0 1 1 2 3 5 8 13 21 34
Örnek 2: String Manipülasyonu
berk> değişken metin = "Merhaba Dünya"
berk> string::böl(metin, " ")
["Merhaba", "Dünya"]
berk> string::tersine_çevir(metin)
"aynüD abahreM"
Özet
- ✅ Hızlı prototipleme
- ✅ Otomatik tamamlama
- ✅ Geçmiş navigasyonu
- ✅ Çok satırlı ifadeler
- ✅ Modül desteği
- ✅ Performans ölçümü
- ✅ Öğrenme için ideal