首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让选项表达式在伊莎贝尔中简单化?

如何让选项表达式在伊莎贝尔中简单化?
EN

Stack Overflow用户
提问于 2021-01-15 06:01:38
回答 1查看 74关注 0票数 0

我正在尝试理解Isabelle (2020)中的选项,并且无法理解为什么某些简单的选项表达式不像预期的那样计算或简化。

例如,我希望

代码语言:javascript
运行
复制
value "some (1::nat)"

应该返回一个"nat option"类型,但是它返回一个未指定的类型:

代码语言:javascript
运行
复制
"some 1"
  :: "'a

更重要的是,从类型签名中,我希望the函数返回"inside“选项中的值,因此”(一些(1:nat))“只是(1::nat)

然而,

代码语言:javascript
运行
复制
value "the (some (1::nat))"

返回一个看似不太有用的类型:

代码语言:javascript
运行
复制
"the (some 1)"
  :: "'a"

,这不是nat。那么结果就不是很有用了。

代码语言:javascript
运行
复制
 value "the (some (1::nat)) + 2"

返回

代码语言:javascript
运行
复制
"the (some 1) + (1 + 1)"
  :: "'a"

(我预期结果是"3::nat")

这是出于设计,还是我遗漏了一些关于the__的东西,或者选项如何简化/计算在伊莎贝尔中?

(我之前不知道伊莎贝尔的选择,我只是假设它和哈斯克尔的类似。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-15 07:01:07

点击C键显示该定义是:

代码语言:javascript
运行
复制
datatype 'a option =
    None
  | Some (the: 'a)

这是一些,而不是一些。

有一个提示可以看到,some没有定义:颜色与来自the的颜色不一样。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65731209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档