是否可以(*)在Haskell中实现最严格的语义(标准化的Haskell首选,但扩展是可以的.使用编译器内部是作弊)?例如,这样的定义应该导致以下情况:
(*)
0 * ? = 0 ? * 0 = 0
并且只有:
? * ? = ?
我可以构建满足上述情况之一但不能同时满足这两种情况的模式匹配,因为零检查会强制该值.
haskell lazy-evaluation
haskell ×1
lazy-evaluation ×1