comparable türü, bu türdeki değerleri aynı türdeki diğer değerlerle karşılaştırmak için kullanılır.
= ile <> işleçleri, imzalarını tanımlamak için bu türden faydalanır.
operator'='(:t, :comparable where t:subtype(comparable)):t
operator'<>'(:t, :comparable where t:subtype(comparable)):t
Bu işlevlerin her biri, comparableın rasgele bir alt türü olan birinci bir bağımsız değişken ve yine rasgele bir alt tür olan ve birinci bağımsız değişkenle aynı türü sonuç olarak veren ikinci bir bağımsız değişkenin alınması olarak tanımlanır.
comparable türün kullanabileceğin birçok alt türü vardır. Bu alt türler, hem aynı türdeki diğer değerlerle hem de comparableın diğer alt türleriyle karşılaştırılabilir. Bu alt türler arasında şunlar yer alır:
intlogicfloatcharchar32- tüm dahil edilmiş türler
comparableın alt türleriyse dizi - tüm dahil edilmiş türler
comparableın alt türleriyse seçenek - tüm dahil edilmiş türler
comparableın alt türleriyse demet - tüm dahil edilmiş türler
comparableın alt türleriyse harita
Sınıflar, unique belirleyicisi ile comparableın alt türleri olacak şekilde de oluşturulabilir. Bu belirleyiciye sahip sınıf örnekleri, dahil edilmiş üyeler eşit olsa bile yalnızca kendilerine eşittir. Örneğin:
int_ref := class<unique>:
Contents:int
Main()<decides> : void =
X := int_ref{Contents := 0}
Y := int_ref{Contents := 0}
X = X # Başarılı
X = Y # Başarısız
X <> Y # Başarılı
Şu anda float, option ve sınıflar (benzersizin var olup olmadığına bakılmaksızın) harita anahtarları olarak kullanılamaz; bir başka deyişle, harita anahtarlarının bir ad verilmeyen comparableın bir alt türü olması gerekir (dolayısıyla gerekli alt tür oluşturma Verse kodunda tanımlanamayacağından harita anahtarı türleri parametrik türler olamaz).
Bir comparable alt türünün değeri, başka bir comparable alt türünün diğer herhangi bir değeriyle karşılaştırılabileceğinden bazı beklenmeyen sonuçların ortaya çıkabileceğini unutma. Örneğin:
0 = 0.0
Bu örnek başarısız olacaktır çünkü 0, int türüyken, 0.0, float türüdür ve int ile floatun paylaştığı bir alt tür oluşturma ilişkisi yoktur.