[Test] Builtin Fonksiyonların Kullanım Örnekleri (print, len, toString, parseInt, ...) #102
Labels
No Label
cli-ux
faz-plani
felsefe-gozden-gecir
ffi-builtin
fikir
gelecek-vizyon
ir-vm
kalite-mimari
moduller-import
test-senaryosu
tip-sistemi
tooling-lsp
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: saqut/saqut-compiler#102
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Giriş (Nedir, Neden Önemli?)
printdışındaki builtin'ler henüz yazılmadı (bkz. "[Fikir] Builtin Fonksiyon Kataloğu", #89), ama bu issue hedefin son hâlini somut kodla göstermek için var — yani "builtin kataloğu" tamamlandığında bu dosyanın aynen bu çıktıyı vermesi beklenir. Erken yazmanın faydası: builtin imzaları (parametre/dönüş tipleri) bu örnekten geriye doğru türetilebilir.Test Kodu (
examples/tests/builtin_fonksiyonlar.sqt)Beklenen Çıktı
Açık Sorular / Bağlı Fazlar
print(true)çıktısıtrue/falsemi yoksa1/0mı olmalı? saQut'taboolayrı bir tip olduğu için (ADR-010, gizli int↔bool dönüşümü de yok varsayımıyla)true/falsedaha tutarlı görünüyor — ama bu kararınprint'in builtin tablosuna (#89) not edilmesi gerekir.int[] sayilar = {10, 20, 30};— array literal sözdizimi ({...}) şu an dilde tanımlı mı? Eğer değilse, bu issue aynı zamanda "array literal sözdizimi eklenmeli" şeklinde bir alt-konu açar (Faz 1/parser'a not).parseFloat("2.5") * 2.0→5.0çıktısının5değil5.0(ondalık nokta korunarak) basılması,print'infloatbiçimlendirmesi için bir kural gerektirir — bu kural baştan netleşmeli (örn. her zaman en az bir ondalık basamak).İmza/Yorum: Bu dosya, builtin kataloğu (#89) ve minimal stdlib (#90) issue'larının "kabul testi" (acceptance test) gibi düşünülebilir.