全碼https://github.com/gertcuykens/haskell-design哈斯克爾無法匹配預期的類型`也許文本「與實際的類型'文本」
我怎樣才能解除也許可能從文本類型
application :: MVar ServerState -> WS.Request -> WS.WebSockets WS.Hybi10()
application state rq = do
WS.acceptRequest rq
WS.getVersion >>= liftIO . putStrLn . ("Client version: " ++)
sink <- WS.getSink
msg <- WS.receiveData
clients <- liftIO $ readMVar state
url <- liftIO fbUrl
let prefix = "Facebook code"
let code = T.drop (T.length prefix) msg
let a = ("code",T.unpack code)
e <- liftIO $ fbEmail $ (\(x,y) -> (C.pack x, C.pack y)) a
let client = (e, sink) --ERROR
case msg of
_ | not (prefix `T.isPrefixOf` msg) -> do
WS.sendTextData ("Facebook login " `mappend` url :: Text)
| any ($ fst client)
[T.null, T.any isPunctuation, T.any isSpace] ->
WS.sendTextData ("Facbook code invalid" :: Text)
| clientExists client clients ->
WS.sendTextData ("User already exists" :: Text)
| otherwise -> do
liftIO $ modifyMVar_ state $ \s -> do
let s' = addClient client s
WS.sendSink sink $ WS.textData $
"Welcome! Users: " `mappend`
T.intercalate ", " (map fst s)
broadcast (fst client `mappend` " joined") s'
return s'
talk state client
Couldn't match expected type `Maybe Text' with actual type `Text'
Expected type: Maybe Text -> Bool
Actual type: Text -> Bool
In the expression: T.null
In the second argument of `any', namely
`[T.null, T.any isPunctuation, T.any isSpace]'
對於所有的羽絨選民我不介意你的投票我介意你不要留下你不喜歡的評論。有些人喜歡完整的代碼示例。在我的情況下,短時間提取大部分時間沒有任何意義。 – 2012-07-28 02:02:09
如果您不能在較小的代碼示例中重現該問題,那麼對於認爲自己遇到同樣問題的下一個人有多大幫助?堆棧溢出不僅適用於您,它適用於每個有您的問題的人。如果你無法溝通,你不會對下一個人有太大的幫助。支付它,花時間把你的問題削減到基本要素。另外:鏈接死亡,移動,否則變得破碎。如果你的問題不能獨立存在,那是另一個問題。 – 2012-07-30 02:36:22
下一個可以提取一個簡單的haskell問題的人無論如何都不需要stackoverflow :)下次我將使用stackoverflow聊天。 – 2012-07-30 18:54:12