Standart ML
Bu madde hiçbir kaynak içermemektedir. (Temmuz 2024) (Bu şablonun nasıl ve ne zaman kaldırılması gerektiğini öğrenin) |
Standart ML (SML), çok amaçlı işlevsel programlama dilidir. Çoğunlukla derleyici/yorumlayıcı yazımı ve teorem ispatlama konularında tercih edilir. ML ailesinin diğer fertleri gibi tür çıkarımı yeteneği ile ünlüdür. Ayrıca çok gelişmiş bir modül sistemine sahiptir.
Örnekler
[değiştir | kaynağı değiştir]Merhaba Dünya
[değiştir | kaynağı değiştir]print "Merhaba Dünya\n"
Tür çıkarımı ve doku tanımı
[değiştir | kaynağı değiştir]fun fak 0 = 1 | fak n = n * fak (n - 1)
Yukarıdaki örnekte derleyici 0 ve 1'in tam sayı olmasından yola çıkarak, fak işlevinin tam sayılardan tam sayılara tanımlı olduğunu algılar. Doku tanımı, fak işlevinin parametresi 0 ise farklı bir kod, değilse farklı bir kod çalıştırmasıdır.
Birinci sınıf işlevler
[değiştir | kaynağı değiştir]fun esle ([], _) = [] | esle (bas::kuyruk, islev) = (islev bas)::(esle (kuyruk, islev))
Doku tanımının daha gelişmiş örneği olan bu kodda tanımlanan esle işlevi, parametre olarak bir liste ve bir işlev alıp, listenin her elemanı için islevi çağırır ve sonuçları gene bir liste olarak döndürür.
Özyinelemeli veri türleri
[değiştir | kaynağı değiştir]datatype dogal = SIFIR | SONRAKI of dogal fun topla (m, SIFIR) = m | topla (m, SONRAKI(n)) = SONRAKI (topla(m, n))
Bu örnekte dilin kendi tam sayı veri türünden ve toplama (+) işlecinden bağımsız olarak doğal sayılar veri türü (dogal) ve iki dogal'ı toplayan topla işlevi tanımlanmıştır. Matematiksel sistemleri tanımlama konusundaki rahatlığı teorem ispatlamada kullanılmasının temel sebeplerindendir.
Özyinelemeli yorumlar
[değiştir | kaynağı değiştir](* burası yorum (* burası (da) iç yorum *) burası hala yorum *)