functional-programming - Isabelle 中的 Map 和 Mapping 有什么区别?
问题描述
所以我上网,我发现了这些:
https://isabelle.in.tum.de/library/HOL/HOL/Map.html(地图)
https://isabelle.in.tum.de/library/HOL/HOL-Library/Mapping.html(映射)
以“地图”一词开头的两种理论。我通读了很长时间,但我无法真正辨别它们之间的任何显着差异。有没有时候我应该使用前者而不是后者,反之亦然?
提前致谢!
解决方案
Map.thy
给你一些词汇来谈论偏函数,写成'a ⇀ 'b
,它是 的缩写'a ⇒ 'b option
。
Mapping
另一方面,该理论将其包装成一种新型的偏函数,这对于代码生成很有用。如果您尝试为涉及 type 的部分函数的事物导出代码'a ⇀ 'b
,您将在导出的代码中得到字面意思'a ⇒ 'b option
,这意味着诸如请求此类函数的域之类的事情将根本无法执行。
Mapping
另一方面,使用,您可以导出到(有限)映射的更明智的实现,例如关联列表或红黑树。
所以,简短的回答:不要担心,Mapping
除非(以及何时)您想要导出可执行代码。
推荐阅读
- c# - ASP.NET Core appsettings.json reloadOnChange 不适用于符号链接文件?
- python - 如何让我的机器人发送图像以及如何创建关闭它的命令?
- laravel - 为什么我得到一个整数而不是数组?
- cmake - CMake MacOS 通用二进制构建:链接到某个库仅适用于 x86_64,不适用于 ARM
- angular - 如何在 Angular/Jasmine 中测试 Filereader.onload 回调函数?
- java - 为什么jmeter不能解析哈希字符?
- database - 使用不同的用户和密码创建多个 PostgreSQL 数据库
- r - 将数字的命名向量乘以R中的单个数字
- azure - 几分钟后使用 azure SQL 连接时,ADF 中出现连接关闭错误
- discord.py - 在discord.py中添加特定人的特定反应后如何执行代码?