我一直在閱讀關於組合器並且看到它們是多麼有用的(例如,在Haskell的Parsec中)。我的問題是,我不太清楚如何實際使用它們。不確定如何使用組合器設計一個有用的庫
下面是問題概述:可以生成,過濾和修改分佈。分銷可以合併以創造新的分銷。
基本接口(僞哈斯克爾類型的術語):
generator:: parameters -> distribution
selector:: parameters -> (distribution -> distribution)
modifier:: parameters -> (distribution -> distribution)
現在,我覺得我看到三個組合子:
combine:: generator -> generator -> generator
filter:: generator -> selector -> generator
modify:: generator -> modifier -> generator
這些是實際組合子?組合器是否合理/我還有其他明顯的組合器嗎?
感謝您的任何建議。
儘量減少問題的本質,獲得良好的答案。 – Pindatjuh
什麼是 - 除了名稱 - 「過濾器」和「修改」之間的本質區別? – fuz
「選擇器」從分配中刪除一些點;修飾符調整分佈中某些點的位置。所以我的'過濾器'的意圖是將一個發生器和一個選擇器組合成一個新的發生器,這將創建原始發生器分佈的一個子集。對於'修改' - 從發電機+修改器生成發電機。 –