OP'nin yorumlarından birinde belirtildiği gibi , bu, Scala'nın genel programlama desteği için nasıl karşılaştırıldığını açıklayan tablodur. Kaynak pdf bağlantısı
Daha sonra aşağıdaki özet verilmektedir:
Scala
CONCEPT modelini kullanarak çok tipli konseptleri, çoklu kısıtlamaları modelleyebilir ve geriye dönük modellemeyi destekleyebiliriz. Ayrıca, Scala'nın çıkarımlara verdiği destek, Java ve C # çözümlerinin ek yük açısından dezavantajlarının Scala için geçerli olmadığı anlamına gelir. Böylece, Scala hem örtük argüman çıkarımında hem de geriye dönük modelleme kriterlerinde iyi puanlar alır. Bölüm 6, ilişkili türlerin Scala'da tür üyeleri ve bağımlı yöntem türleri aracılığıyla desteklendiğini ve tür üyelerinin tür takma adları olarak da kullanılabileceğini göstermektedir.
Bölüm 3'te gösterildiği gibi Scala, sözlük kapsamındaki modelleri desteklemektedir. Ayrıca tip kontrolü tamamen modülerdir. Öncelikli örtüşen çıkarımlar , zipWithN'de gösterildiği gibi konsept tabanlı aşırı yükleme için bazı destek sağlarBölüm 6.5'teki örnek. Bununla birlikte, örtüşen modeller, her zaman istenmeyebilecek bir alt tip hiyerarşisi kullanılarak yapılandırılmalıdır. Bu nedenle, bu özellik için puan sadece yeterlidir. Son olarak, Scala birinci sınıf işlevler için tam desteğe sahiptir ve eşitlik kısıtlamalarını da destekler.
Özetle Scala, G (genel olarak genel programlama için bir dil olarak özel olarak tasarlanmıştır) veya Haskell ( tanınan genel programlama için çok iyi bir desteği var).
Ve sonra özette:
Tür üyeleri ve bağımlı yöntem türleri dile fazladan güç katar ve iki mekanizmanın birleşimi ilişkili türlerin ifade edilmesini sağlar. Çıkarımlarla birlikte, yazım üyeleri ve bağımlı yöntem türleri Scala'yı genel olarak genel programlamaya hazır bir dil haline getirir