Haskell打印函数名

Haskell打印函数名,haskell,Haskell,您好,我想在列表中打印函数的名称。是否有可能这样做 我的例子是: import Text.Show.Functions f1 x = if x == 1 then 1 else 0 f2 x = if x == 2 then 1 else 0 f3 x = if x == 1 then 2 else 0 fs = [f1,f2,f3] fs 写出[,]但是我想要[f1,f2,f3]不,这是不可能的。如果你想要命名的函数,你必须自己去做;e、 g data Named a = Named { n

您好,我想在列表中打印函数的名称。是否有可能这样做

我的例子是:

import Text.Show.Functions
f1 x = if x == 1 then 1 else 0
f2 x = if x == 2 then 1 else 0
f3 x = if x == 1 then 2 else 0
fs = [f1,f2,f3]
fs

写出
[,]
但是我想要
[f1,f2,f3]
不,这是不可能的。如果你想要命名的函数,你必须自己去做;e、 g

data Named a = Named { name :: String, val :: a }
instance Show (Named a) where show = name
fs = [Named "f1" f1, Named "f2" f2, Named "f3" f3]

不,这是不可能的。如果你想要命名的函数,你必须自己去做;e、 g

data Named a = Named { name :: String, val :: a }
instance Show (Named a) where show = name
fs = [Named "f1" f1, Named "f2" f2, Named "f3" f3]

函数本身没有名称;您可以将一个或多个名称绑定到单个函数,但函数本身不知道绑定了哪些名称;您可以将一个或多个名称绑定到单个函数,但函数本身不知道哪些名称绑定到它。不用说,现在
fs
的类型类似于
[命名(a->b)]
,而不是
[(a->b)]
。使用
fs
的后续代码需要进行调整。可能不用说,但是现在
fs
的类型类似于
[命名(a->b)]
,而不是
[(a->b)]
。使用
fs
的后续代码需要调整。