获取函数名称或使函数在Haskell中可显示

时间:2014-11-11 16:07:51

标签: function haskell functional-programming

我有以下代码:

data Instruction = Assignment (Int->Int->Int) Int Int

这允许我创建一个这样的方法:

foo :: Assignment -> Int
foo (Assignment func a b) = (func a b) + 100

可以这样使用:

foo (Assignment (+) 5 6) --outputs 111

或者

foo (Assignment (*) 5 5) --outputs 125

现在我想为作业创建一个“节目”。这是我到目前为止所得到的:

instance Show Instruction where
    show (Assignment f a b) = show a ++ " " ++ show f ++ " " ++ show b --compile time error

我想要的是如果我做“show(Assignment(*)5 8)”输出将是“5 * 8”

然而问题是你不能做“show f”。

注意:请将对其他图书馆的依赖程度降至最低或无。

0 个答案:

没有答案