dar işlemler esnek olarak adlandırılır ise, katı olarak adlandırılır residuate Operasyon. Tüm tanımlanmış işlemler esnektir, ancak aritmetik işlemler gibi çoğu ilkel operasyonlar, tahminler onlar için makul bir seçenek olmadığı için katıdır.
Prelude> x ++ [3,4] =:= [1,2,3,4] where x free
Free variables in goal: x
Result: success
Bindings:
x=[1,2] ?
: operasyon “++” Belirli bir özellik sağlayan bir listesi için arama yapmak için kullanabilir, esnek olduğu için
infixr 5 ++
...
(++) :: [a] -> [a] -> [a]
[] ++ ys = ys
(x:xs) ++ ys = x : xs ++ ys
aşağıdaki gibidir: Örneğin, başlangıç listesi birleştirme işlemi tanımlar
Öte yandan, “+” ekleme gibi önceden tanımlanmış aritmetik işlemler katıdır. Böylece, çağrısı “+” bir mantık değişkenle bir argüman flounders olarak:
Prelude> x + 2 =:= 4 where x free
Free variables in goal: x
*** Goal suspended!
Curry askıya alınacak yazı hedeflerine karşı korumak için görünmüyor. Bir hedefin askıya alınmaya devam edip etmeyeceği önceden hangi sistemleri önceden algılayabilir?
IMO, bu tür bir soru, tür sistemlerdeki uzmanlar (belki de, http://cstheory.stackexchange.com adresinde) veya Curry uzmanları (posta listelerinde) tarafından daha önce yanıtlanabilir. –