2012-01-17 51 views
2

功能dynApply from Data.Dynamics看起來很不錯,但實際上它需要一個單形函數類型。所以,你不能寫任何解決方法以獲取Data.Dynamics中的多態函數?

dynApply (toDyn id) (toDyn 3) 

我有一些代碼需要多態返回類型。它們是受限制的形式,例如功能

forall t. (a -> t) -> t 
forall t. (a -> t) -> b -> t 
forall t. (a -> t) -> b -> c -> t 
... 

(其中abc是具體類型)。提前致謝。

+0

能可能返回類型列表中列舉的(最多多態性't',當然)? – 2012-01-17 02:08:40

+0

@DanielWagner,這種方法可能奏效,謝謝,但我認爲這將是太多的努力,考慮到[我需要將它們應用於不同的_t_實例]的範圍。 – gatoatigrado 2012-01-17 02:49:19

+0

另外我應該指出有人似乎正在處理它[http://hackage.haskell.org/trac/ghc/wiki/PolymorphicDynamic],但還沒有任何結果代碼。 – gatoatigrado 2012-01-17 02:55:22

回答

3

不,多態功能與Data.Dynamic不兼容。要做到這一點,需要一個多態的Data.Typeable以及在運行時使用typechecker。

有但是,此功能的票:Polymorphic Data.Dynamic

相關問題