我可以在数据构造函数中使用函数吗?喜欢:
data Something = (a->b) Something1 Something2
Run Code Online (Sandbox Code Playgroud) 我知道可以做到:
any (>3) [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
但优雅的实施方式是什么:
any and[(>3),(<5)] [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
要么
all or[(<2),(>4)] [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
等等?
我在我想表示任何数量的类型(的类型的类的参数变量Float
,Integer
,Double
等等).
我如何在类型和实例中声明这个?
data Exp
= Let String Exp Exp
| Exp1 Exp1
deriving Show
Run Code Online (Sandbox Code Playgroud)
文档页面示例中的Let关键字是什么意思?(我知道let的正常含义)
我想将子数据类型传递给函数.
一个例子:
data Car a = Ford | Opel | BMW | Mercedes a deriving (Show)
data Mercedes a = SClass a| CClass a| MClass a
myfunc::Car->String
myfunc a = show a ++ " works correctly"
Run Code Online (Sandbox Code Playgroud)
但是我愿意:
myfunc CClass"x"
它说
不在范围内:构造函数CClass
如何使用以下代码来比较不同的数字类型?
foo::(Num a) => (Num b) => a -> b -> Bool
foo a b = (a == b)
Run Code Online (Sandbox Code Playgroud)
我从上下文中得出关于推导(a~b)的错误(Num a,Num b)
有没有办法查看列表,当您找到值4和5时,做一些事情?
我试过foo (4:5:xs) = <do something>
但它没有编译
haskell ×7