我在haskell中制作了一个计算器,我在GHCi中运行。但是,由于最终数字可以是整数或 double 数,因此我进行了类型声明
calc :: String -> Either Integer Double
然而,函数的输出总是在它的前面或左或右,例如
Left 7
Right 8.4
有没有办法可以阻止左右打印?
最佳答案
当您评估此函数时,GHCi 会自动调用 putStrLn . show
结果上。它是 show
Either Integer Double
的函数这是添加 Left
和 Right
字符串。
为避免这种情况,您可以使用 either show show
相反,这将应用 show
仅对 Either
中存储的数字起作用, 所以
> putStrLn . either show show $ calc ...
应该给你你想要的。
关于Haskell:如何停止向左或向右打印程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267320/