我需要一个函数,它接受任意数量的参数(全部是相同的types),对它们做一些事情,然后给出结果。 在我的具体情况下,争议清单是不切实际的。 当我查看haskell库时,我发现printf (来自模块Text.Printf )使用了类似的技巧。 不幸的是,我无法通过查看源代码来理解这种魔法。 有人可以解释如何实现这一点,或者至less有一些网页/纸/无论我可以find一个很好的描述呢? 动机: 我需要这个的原因真的很简单。 对于学校(计算机科学类),我们需要编写一个能够“logging”mathexpression式的模块,将其expression为一个string(通过为自己的数据types编写一个Num / Real / etc实例),并执行它的各种操作。 这个数据types包含一个variables的特殊构造函数,它可以被一个指定的函数replace为一个值或任何东西。 其中一个目标是编写一个函数,该函数使用一些variables(types对(Char,Rational) )来计算expression式的结果。 我们应该看看如何最好地expressionfunction的目标。 (我的想法:该函数返回另一个函数,该函数与函数中定义的variables一样多的参数 – 似乎是不可能的)。