我怎么能有多个类约束,所以如果A是Eq和B是Num,我可以说
f :: Eq a => a -> b`
Run Code Online (Sandbox Code Playgroud)
要么
f :: Num b => a -> b
Run Code Online (Sandbox Code Playgroud)
所以,我怎么能有Eq a =>和Num b =>在同一时间?
f :: Eq a => Num b => a -> b,f :: Eq a -> Num b => a -> b,和f :: Eq a, Num b => a -> b没做我想做的事.
在Haskell中,我写import Fruit或import Fruit (apple) 可以访问apple或Fruit.apple.
在Python,我可以写from Fruit import apple为apple或import Fruit为Fruit.apple.
我想也可以用import Fruit.apple as bananaPython 编写引用相同的函数banana.
怎么,在Haskell中我可以这样做吗?import Fruit as Vegetable在任何一种语言中都可以重命名Fruit,但我想重命名apple.
我喜欢在Haskell开发,但目前面临挑战.在我的教育地点,我对我的帐户没有管理权限.我想在那里调试/测试.我需要一种方法来运行Haskell代码而无需安装haskell-platform或者ghci需要管理级别的权限.例如,一个将运行haskell代码的网站(abeit仅限于不包括文件访问权限)或java实用程序(或独立.app,但由于"家长控制"的性质,java是首选),或其他我没有想到.Ruby或Python中的源代码或编译的Java,Flash和源代码优先于本机代码.这是在Mac OS X 10.6上,供参考.
我喜欢在Haskell中编码,但经常在我无法安装软件的计算机上,并且对于你可以运行的内容有一些限制.我想编写Haskell代码并在此计算机上进行测试.有没有人知道Haskell的版本,解释或编译,用Java,JavaScript,Ruby,Python或Mac上的默认安装中提供的其他解释语言编写?可以在用户级安装的独立版Haskell也可以,但是自己编译Haskell不是一个选择.
一个pointfree函数可以返回一个元组吗?例如,以下内容可以用无点样式编写(其中f1,f2和f3已定义):
(\t -> (f1 t, f2 t, f3 t))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的f1,f2和f3是quot,mod,*和一些整数的组合.
(\f1,f2,f3 -> (\t -> (f1 t, f2 t, f3 t)))
Run Code Online (Sandbox Code Playgroud)
是一个更普遍的情况,相当于
(\f1,f2,f3,t -> (f1 t, f2 t, f3 t))
Run Code Online (Sandbox Code Playgroud)
命名函数没问题,但我的例子是匿名的.(命名示例如下)
f x = (f1 x, f2 x, f3 x)
f f1 f2 f3 x = (f1 x, f2 x, f3 x)
Run Code Online (Sandbox Code Playgroud)
编辑:我只是好奇好玩,我不打算这样做.