Kombinatörleri okuyordum ve ne kadar yararlı olduklarını gördüm (örneğin, Haskell'in Parsec'inde). Benim problemim, onları pratikte nasıl kullanacağımı tam olarak bilmiyorum.Taraklayıcıları kullanarak kullanışlı bir kitaplığın nasıl tasarlanacağından emin değilsiniz
Sorunun ana hatları şöyledir: dağıtımlar oluşturulabilir, filtrelenebilir ve değiştirilebilir. Yeni dağıtımlar oluşturmak için dağılımlar birleştirilebilir.
temel arayüzleri bulunmaktadır (sözde Haskell tipi terminolojisinde):
combine:: generator -> generator -> generator
filter:: generator -> selector -> generator
modify:: generator -> modifier -> generator
bunların aslında combinators Are:
generator:: parameters -> distribution
selector:: parameters -> (distribution -> distribution)
modifier:: parameters -> (distribution -> distribution)
Şimdi, ben üç combinators bkz düşünüyorum? Kombinatorler mantıklı mı/eksik olduğum başka açık kombinatorler var mı?
Her türlü öneriniz için teşekkürler.
Sorunuzu özüne, iyi yanıtlar almaya çalışın. – Pindatjuh
İsim - adın dışında - filtre ile 'değiştir' arasındaki temel fark nedir? – fuz
A 'seçici', bazı noktaları dağıtımdan kaldırır; Bir düzenleyici, bir dağıtımdaki bazı noktaların konumunu ayarlar. Yani 'filtre' ile ilgili niyetim, bir jeneratörü ve seçiciyi, orijinal jeneratörün dağıtımının bir alt kümesini yaratacak olan yeni bir jeneratöre birleştirmektir. Ve 'değiştirmek' için - bir jeneratör + değiştiriciden bir jeneratör yapın. –