根据这篇关于 Haskell 指称语义的文章,从 Int 到 Int 只有一个非严格(非底部保留)函数。
去引用:
碰巧只有一个 Integer -> Integer 类型的非严格函数的原型:
一个 x = 1
对于每个具体的数字 k,它的变体是 constk x = k。为什么只有这些可能?请记住,一个 n的定义不能小于一个 ⊥。由于 Integer 是一个平面域,因此两者必须相等。
本质上,它表示该类型签名的唯一非严格函数只能是常量函数。我不遵循这个论点。我也不确定flat domain是什么意思,文章的其余部分导致人们相信它只是意味着值的 poset 只有一个节点:底部。
从 A->A 或 A->B 的函数是否会发生类似的情况?那就是它们必须是常量函数?