【发布时间】:2011-07-27 14:24:10
【问题描述】:
假设我有 100 个各种简单签名的函数(从单态开始,但也想让多态案例工作)a -> b (Int -> Int, Int -> String, String -> Double, MyType -> MyOtherType 等)
假设我向用户显示了这些列表。用户选择一个。我显示了一个函数列表,其参数与所选函数的输出兼容。用户选择一个。
我现在如何组合这两个函数?一般情况是一系列组合,但我认为这个简单的情况涵盖了我正在处理的问题。
我知道我可以尝试 unsafeCoerce 或 Data.Dynamic,但我想看看我是否可以避免这种情况,而且这些显然仅限于导致问题的单态类型。
我想也许我可以以某种方式创建所有函数的数据结构以及它们可以组合的内容,但我不确定。而当包括多态情况时,似乎是不可能的。
【问题讨论】:
-
你的函数从何而来?在你的程序中硬编码?在配置文件中以源代码形式提供?介于两者之间?
标签: haskell