Bu etikete ilk kez yazıyorum ve hala dil ile geçici adımlar atıyorum, ancak bazı dinamik FP arka planım var, bu yüzden zaten birkaç kavramla tanıştım.Belirsiz türlerle kompozisyon
Bir isZero
işlev tanımladım.
isZero :: Int -> Bool
isZero x = x == 0
Ve bir isMultiple
fonksiyonunu oluşturmak için mod
fonksiyonu ile bu oluştururlar çalışıyorum. o (birden çok precisions destekler çünkü bu olduğunu varsayarak) a0 -> Int
ve mod
a0 -> a0 -> a0
olduğunu olmasını imzayı bekliyor çünkü
isMultiple = isZero . mod
Ancak bu, bir tür uyumsuzluğu neden olur.
Sadece bunları açıkça oluşturuyorsam (ve bir tür imzası), o zaman sorun olmadığını fark ettim.
isMultiple :: Int -> Int -> Bool
isMultiple x n = isZero $ mod x n
.
operatörünü kullanarak belirsiz türleriyle oluşturma işlevlerini kullanmak için bir yolu var mı?
'\ x -> isZero. mod x = \ x -> (.) isZero (mod x) = (.) isZero. mod ' – user2407038