亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

runST和功能組成

runST和功能組成

冉冉說 2019-10-18 15:02:56
為什么要進行此類型檢查:runST $ return $ True盡管以下內容沒有:runST . return $ TrueGHCI抱怨:Couldn't match expected type `forall s. ST s c0'            with actual type `m0 a0'Expected type: a0 -> forall s. ST s c0  Actual type: a0 -> m0 a0In the second argument of `(.)', namely `return'In the expression: runST . return
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

這種runST $ do { ... }模式非常普遍,而且通常不會進行類型檢查,這一點令人討厭,GHC包括一些ST特定的類型檢查技巧以使其起作用。這些黑客可能會在此處觸發該($)版本,而不是該(.)版本。


查看完整回答
反對 回復 2019-10-18
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

這些消息有點混淆了這一點(或者我感覺如此)。讓我重寫您的代碼:


runST (return True)   -- return True is ST s Bool

(runST . return) True  -- cannot work

另一種表達方式是單態m0 a0(如果返回a0,則返回結果)不能與(forall s.ST sa)統一。


查看完整回答
反對 回復 2019-10-18
  • 3 回答
  • 0 關注
  • 667 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號