【发布时间】:2015-12-01 13:19:31
【问题描述】:
给定数据类型,Foo:
Prelude> data Foo a = Foo a
没有实现Show,所以无法打印。
Prelude> Foo 5
<interactive>:13:1:
No instance for (Show (Foo a0)) arising from a use of ‘print’
但是,给定一个总是抛出的函数:
Prelude> let f _ = error("bad!")
f 可以应用于它。
Prelude> f (Foo 5)
*** Exception: bad!
既然f 总是抛出它的单个参数,这是否意味着它的参数永远不会被评估,甚至是弱头范式?
【问题讨论】: