haskell - 为什么在 Liquid Haskell 中 Nat 类型等于 Int?
问题描述
为什么这会通过 Liquid Haskell 验证?
{-@ sub :: Nat -> Nat -> Int @-}
sub :: Int -> Int -> Int
sub i j = i - j
这是否意味着与LH的观点Nat
相同?Int
解决方案
假设你对我说:“嘿,我想要一个苹果!”。我回答:“对不起,我只有红苹果。”。你会看着我很有趣,是吧?红苹果就是苹果!
如果一个函数要求 a作为参数,那么将一个你知道不是负数的函数Int
交给它是没有问题的。Int
推荐阅读
- php - 从 facebook 对话 api 获取数据
- vsto - 测试证书不受信任
- javascript - 无法访问比 for 循环中的当前索引少或大一个索引的数组元素(即使它存在)
- python - 在 keras 中实现交换层
- java - 如何在没有按钮的情况下主动(立即)检查 JFrame 表单中文本框的值?
- postgresql - 如何获取商店的交易时间
- css - Bootstrap 3弹出透明和样式问题?
- python - pytorch 如何计算 Conv2d 相对于其输入的梯度?
- ios - SwiftUI 网格图像无法被点击以显示 DetailView
- linux - 使用 Ansible 在 sudoers 文件中授予有限授权的无密码 sudo