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
的后续代码需要调整。