我偶然发现了很多练习,它们会给你一个功能,并要求你推断出每个练习的类型.
我有以下示例.请注意,这不是我需要完成的功课.我有这个具体例子的答案,并在下面提供.也许有人可以帮助我学习如何推理这种练习.
功能:
h1 f g x y = f (g x y) x
Run Code Online (Sandbox Code Playgroud)
假设的类型:
h1 :: (a -> b -> c) -> (b -> d -> a) -> b -> d -> c
Run Code Online (Sandbox Code Playgroud)
谢谢!
我加了27次演习在这里 没有解决方案.
其中一些有解决方案包括在这里.但是,可以使用GHCi命令知道类型:t
真实世界Haskell有这个例子:
class BasicEq3 a where
isEqual3 :: a -> a -> Bool
isEqual3 x y = not (isNotEqual3 x y)
isNotEqual3 :: a -> a -> Bool
isNotEqual3 x y = not (isEqual3 x y)
instance BasicEq3 Bool
Run Code Online (Sandbox Code Playgroud)
当我在GHCI中运行时:
#> isEqual3 False False
out of memory
Run Code Online (Sandbox Code Playgroud)
因此,您必须实现两种方法中的至少一种,否则它将循环.而且你可以灵活地选择哪一个很整洁.
我的问题是,有没有办法得到一个警告或什么,如果没有覆盖足够的默认值和默认值形成一个循环?我觉得奇怪的是,这个例子对于那么疯狂的编译器来说很好.
我使用地图活动构建一个Android应用程序..当我在我的电脑上测试应用程序时,地图工作正常,但当我将应用程序上传到市场时,我在地图上的所有东西都是针脚,但没有地图在背景中,请请任何身体帮助我......