LCF'nin ne olduğundan emin değilim ama GCF bir Haskell favori.
Öklid Algoritması'nı kullanarak gerçekten Haskell'in nasıl
çalıştığını anlayabilirsiniz. http://en.wikipedia.org/wiki/Euclidean_algorithm
Nasıl büyük bir açıklama var algoritma burada ayarlanır http://en.literateprograms.org/Euclidean_algorithm_(Haskell)
.
Bu tür özyineleme, Haskell'de yaygındır ve dilin ne kadar
etkileyici olabileceğini gösterir.
gcd a 0 = a
gcd a b = gcd b (a `mod` b)
Bu, herhangi bir sayının en büyük ortak faktörünü söylemek için
argümanlarda şablon eşleştirmesi kullanır ve 0 ilk sayıdır. Sayılar
her ikisi de sıfır değilse, o zaman ikincinin en büyük ortak etkeni
ve ikincinin ilk modunu arayın. Sonunda bu ikinci argümanda 0'a
ulaşacaktır. Bu, ilk modeli tetikleyecek ve cevap olan ilk argümana
dönecektir.
[DÜZENLE]
Fonksiyon aslında olmalıdır:
gcd a 0 = a
gcd a b = b `seq` gcd b (a `mod` b) where
Bu, önceki yineleme basamağının (bir
mod b)
değerlendirmesini zorlar ve büyük bir parçanın belleğe inşa
edilmesini önler (eğer 1243235452 ve 6095689787662 GCD'leri
iseniz). Zayıf Kafa Normal Formu "veya argümanın en dış veri
yapısını değerlendirir.