相关疑难解决方法(0)

Church-style核心中缺少类型变量会发生什么?

这有点深奥,但令人抓狂.在回答另一个问题时,我注意到这个完全有效的程序

poo :: String -> a -> a
poo _ = id

qoo :: (a -> a) -> String
qoo _ = ""

roo :: String -> String
roo = qoo . poo
Run Code Online (Sandbox Code Playgroud)

a检查过程中,类型变量既未解决也未一般化roo.我想知道GHC的核心语言翻译中会发生什么,这是一种教会风格的System F变体.让我用明确的类型lambdas /\和类型应用程序来解决问题@.

poo :: forall a. [Char] -> a -> a
poo = /\ a -> \ s x -> id @ a

qoo :: forall a. (a -> a) -> [Char]
qoo = /\ a -> …
Run Code Online (Sandbox Code Playgroud)

haskell types

18
推荐指数
1
解决办法
580
查看次数

标签 统计

haskell ×1

types ×1