Haskell:如何停止向左或向右打印程序

标签 haskell types

我在haskell中制作了一个计算器,我在GHCi中运行。但是,由于最终数字可以是整数或 double 数,因此我进行了类型声明

calc :: String -> Either Integer Double

然而,函数的输出总是在它的前面或左或右,例如
Left 7

Right 8.4

有没有办法可以阻止左右打印?

最佳答案

当您评估此函数时,GHCi 会自动调用 putStrLn . show结果上。它是 show Either Integer Double 的函数这是添加 LeftRight字符串。

为避免这种情况,您可以使用 either show show相反,这将应用 show仅对 Either 中存储的数字起作用, 所以

> putStrLn . either show show $ calc ...

应该给你你想要的。

关于Haskell:如何停止向左或向右打印程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16267320/

相关文章:

haskell - XMonad 在指定工作区启动时生成程序

Scala Typeclass 具有多个参数错误

python - 在 Python pandas 中有选择地将 float 转换为整数和小数

c# - 将接口(interface) B 的实现转换为接口(interface) A 的实现

javascript - 如果数组返回子级或子级映射时如何正确替换任何类型

haskell - "Inheriting"包装类型的实例

haskell - 如何证明基本序列性质

haskell - 用于 Haskell Cabal 的 Ruby Bundler Gemfile/Gemfile.lock 模拟

c++ - 有没有办法用一种类型声明多个函数参数?

list - 如何将 Haskell 中的数字列表转换为范围列表?