我在一周前开始研究Haskell并且有一个奇怪的问题.我创建了一个简单的数据类型,并希望在控制台中显示它.我为我的类型的2个构造函数创建了2个函数.如果我使用带有2个参数的构造函数,编译器可以调用函数.但它不能调用另一个应该捕获带有1个参数的构造函数的函数.
module Main (
main
) where
data MyContainter a b = FirstVersion a b
| SecondVersion a
deriving(Show,Eq)
showContainer (FirstVersion a b) = show b
showContainer (SecondVersion a) = show a
--startF = showContainer (FirstVersion 1 2) -- it works
startF = showContainer (SecondVersion 1) -- it doesn't work
main = putStr startF
Run Code Online (Sandbox Code Playgroud)
编译器告诉:
Ambiguous type variable `a0' in the constraint:
(Show a0) arising from a use of `showMaybe'
Probable fix: add a type signature that fixes these type …Run Code Online (Sandbox Code Playgroud) 我的应用使用Facebook SDK 3.0.我在iOS设置中没有Facebook帐户,但我在设备上安装了Facebook应用程序(iOS 6.1.3),并希望在我的应用程序中登录Facebook.我打电话:
NSArray* aPermissions = [NSArray arrayWithObjects: @"user_about_me", @"user_activities", @"user_interests", @"user_notes" , @"read_stream", @"user_status", @"user_likes" , @"friends_likes", @"user_hometown", @"user_location", @"email", nil];
FBSession* session = [[FBSession alloc] initWithAppID:FACEBOOK_API_KEY
permissions:aPermissions
defaultAudience:FBSessionDefaultAudienceEveryone
urlSchemeSuffix:nil
tokenCacheStrategy:nil];
[session openWithBehavior: FBSessionLoginBehaviorUseSystemAccountIfPresent
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self connectResult:error withState:state];
}];
Run Code Online (Sandbox Code Playgroud)
我的应用程序打开Facebook应用程序,然后它返回到我的应用程序.这很好,我喜欢它的工作原理.
但我发现Facebook有新的SDK 3.5.1,我决定更新我的旧SDK.当我这样做时,我发现这个SDK没有打开Facebook应用程序,它只是在当前视图上方呈现一个脏WebView.这很糟糕,因为用户应该记住他的登录名和密码.我的情况有什么不妥?我错过了什么?Facebook是否通过Facebook应用程序禁用了登录?
这两种情况下的代码是相同的.