我有以下代码:
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”。
注意:请将对其他图书馆的依赖程度降至最低或无。