Haskell 实例模拟?

标签 haskell instanceof

我是 Haskell 的新手,所以我的问题可能很愚蠢。

我想要一个功能

show2 :: (Show a) => a -> String

这将返回 show a对于任何 a ,但是 a如果 a 本身是 String .
我该如何实现?

附言如果这个功能已经在某处实现了,那就太好了,但我仍然想看一个实现的例子。

最佳答案

您可以使用 cast来自 Data.Typeable

show2 :: (Typeable a, Show a) => a -> String
show2 s = maybe (show s) id ms
  where ms = cast s :: Maybe String

关于Haskell 实例模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29284765/

相关文章:

haskell - 懒惰的字节串 : memory exploding in certain cases

Haskell 共享库未正确加载

Python - isinstance(类信息,类信息)

java - 比较父类型的两个子类型时正确的 API 实现

selenium - 通过 Haskell 和 webdriver 重用现有的 Selenium session

haskell - cabal 安装 hspec 时出错

haskell - 为什么我不能在 Haskell 中使用 id 制作 Functor 的 Either 实例?

java - 如何解决 "unreported exception AWTException ; must be caught or declared to be thrown"。机器人实例

java - 检查一个类是否是 java.lang.Enum

java - 关于实现扩展接口(interface)的方法的建议