Genel Programlama dili olarak Scala


13

Garcia ve ark. genel programlama için programlama dilleri özelliklerinin ilginç bir karşılaştırması verilmiştir:

resim açıklamasını buraya girin

terminolojinin kısa açıklaması ile:

resim açıklamasını buraya girin

Herkes bu çerçevede genel programlama için Scala desteğini test edebilir mi? Yani ilk tabloya mümkünse açıklamaları içeren bir sütun ekleyin.


3
Bilgisayar Bilimi üzerine yayınlandı . Lütfen yapma. Sorunuzu daha uygun olduğunu düşündüğünüz başka bir siteye taşımak istiyorsanız moderatörlerin dikkatini çekin ve taşıma isteyin.
Gilles 'SO- kötü olmayı bırak'

2
Kesin cevap s. Oliveira ve ark.'nın 17 “ Sınıfları Nesne ve Çıkarım Olarak Yazma
Artem Pelenitsyn

Referans, CS.SE beta sorusunun bağlantısı kandırıldıktan sonra Twitter'dan geliyor. Miles Sabin (Twitter'da milessabin) ve Alexey Romanov'a teşekkürler.
Artem Pelenitsyn

Mil Sabins şekilsiz kütüphane ve onun arkasındaki motivasyon bir göz atın. Sanırım bazı makalelere atıfta bulunuyor
AndreasScheinert

Yanıtlar:


7

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ı

listelenen Scala içeren masa

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.