以下代码:
data HelloWorld = HelloWorld;
instance Show HelloWorld where show _ = "hello world";
hello_world = "hello world"
main = putStr $ show $ (HelloWorld, hello_world)
Run Code Online (Sandbox Code Playgroud)
打印:
(hello world,"hello world")
Run Code Online (Sandbox Code Playgroud)
我想要它打印:
(hello world,hello world)
Run Code Online (Sandbox Code Playgroud)
即我想要的行为如下:
f "hello world" = "hello world"
f HelloWorld = "hello world"
Run Code Online (Sandbox Code Playgroud)
不幸的是,show不满足于此,因为:
show "hello world" = "\"hello world\""
Run Code Online (Sandbox Code Playgroud)
有没有像f我上面描述的那样工作的功能?
haskell ×1