首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >忽略与OCaml中的=相关的某些类型

忽略与OCaml中的=相关的某些类型
EN

Stack Overflow用户
提问于 2018-09-04 23:44:40
回答 2查看 60关注 0票数 1

我处于这样一种情况:我正在修改一个用OCaml编写的现有编译器。我已经在编译语言的AST中添加了位置,但它导致了一堆but,因为当相同的AST附加了不同的位置时,以前成功的相等性检查现在会失败。

特别是,我看到List.mem在应该返回true时返回false,因为它依赖于相等。

我想知道,有没有一种方法可以让我指定,对于我的位置类型的任何两个值,对于这种类型的任何两个值,=应该始终返回true?

重构整个编译器以在任何地方使用自定义相等将是一项繁重的工作,特别是因为许多多态函数依赖于能够在任何类型上使用=。

EN

回答 2

Stack Overflow用户

发布于 2018-09-05 00:12:13

没有现有的OCaml机制来做你想做的事情。

您可以使用ppx来编写OCaml语法扩展,并且(据我所知)行为可以依赖于类型。所以有一些机会可以让事情以这种方式工作。但它不会像你所要求的那样简单。我怀疑您需要显式处理=和任何隐式使用=的标准函数(如List.mem)。(请注意,我没有使用ppx的经验。)

我在这里找到了对PPX的描述:http://ocamllabs.io/doc/ppx.html

许多有经验的OCaml程序员避免使用内置的多态相等,因为它的行为常常令人惊讶。因此,最终可能值得将其转换为自定义比较函数。

票数 2
EN

Stack Overflow用户

发布于 2018-09-05 07:46:26

这是一个多么烦人的问题啊。

如果你不顾一切并愿意写一些C代码,你可以将位置的表示更改为Custom_tag块,这允许自定义一些多态操作的行为。这是一个令人讨厌的解决方案,我建议您在求助于此之前努力寻找更好的方法。

一种可能是大多数编译器根本不使用位置。如果是这样的话,您也许能够将AST中的每个位置替换为相同的虚拟位置。这应该允许平等的行为,就像根本不存在位置一样。这是相当复杂的,如果稍后在编译器中传递任何位置信息,则可能是不可能的。

“干净”的解决方案是为AST定义一个合理的相等操作(或使用ppx派生一个),并更改代码以使用它。正如您所说,这将是更多的工作。

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

https://stackoverflow.com/questions/52175271

复制
相关文章
pycharm上传文件到服务器_python代码部署到服务器
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/174583.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
4.2K0
pycharm上传文件到服务器_python代码部署到服务器
mac怎么上传文件到服务器_shell上传文件到服务器
我们使用mac时,想让本地文件上传至服务器,该怎么办呢 windows系统,我们可以使用xftp或者rz命令,那么mac呢? mac系统,我们可以使用sftp、scp或者rz命令,本文介绍sftp
全栈程序员站长
2022/09/19
13.1K0
mac怎么上传文件到服务器_shell上传文件到服务器
iOS开发中上传JSON字符串到后台服务器
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/72457751
用户1451823
2018/09/13
1.6K0
[android] 上传文件到服务器
前面我们使用普通的方式post提交数据,比较麻烦,现在使用异步框架来实现以下,感觉非常舒服。
唯一Chat
2019/09/10
7.3K0
IOS 上传到后台json数据
今天后台让我传一个类似下图 后台要求的数据格式 我以前还没有这样传过数据。不知道该怎么传,在网上搜了一下,很感谢www.cnblogs.com/yang-guang-girl/p/5642333.ht
honey缘木鱼
2018/06/13
8270
jenkins上传文件到服务器
2、获取文件名,重新命名文件为上传的名字。(mv file_name ${file_name})
@凌晨
2023/09/29
8310
jenkins上传文件到服务器
上传项目代码到Github|Gitee
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
WHYBIGDATA
2023/01/31
6850
上传项目代码到Github|Gitee
如何上传代码到github?
1. 先到GitHub: Where the world builds software · GitHub 注册一个账号,此处忽略
全栈程序员站长
2022/11/15
6440
如何上传代码到github?
上传本地代码到github
点击下面的Create repository,就会进入到类似下面的一个页面,拿到创建的仓库的https地址,红框标示的就是
IT小马哥
2020/03/18
7000
idea上传代码到github
在第一次提交的情况下,如果报错 Push rejected: Push to origin/master was rejected。
Twcat_tree
2022/11/30
6960
idea上传代码到github
Springboot上传文件到Linux服务器
jar打包方式不支持将文件动态写入文件,这时需要通过映射的方式将文件上传到映射某一个文件夹,通过映射获取文件,在页面显示。
全栈程序员站长
2022/08/30
5.7K0
Springboot上传文件到Linux服务器
iOS实现上传图片到服务器
当然如果你的项目大的话最好使用开源的网络库ASI或者AFNetWork,库里面都有现有的方法,
用户7705674
2021/10/29
2.8K0
Python上传文件到FTP服务器
代码在python2.7下测试通过!写在最前面! # -*- coding: UTF-8 -*- from ftplib import FTP import os import os.path #上传文件到FTP服务器 def ftp_upload(filename, save_filename): ftp = FTP() ftp.set_debuglevel(0) # 打开调试级别2,显示详细信息;0为关闭调试信息 ftp.connect('bl
苦咖啡
2018/04/28
8.7K0
IOS Alamofire上传文件到服务器
103 @IBAction func touchupInsideUploadingFileBtnAction(_ sender:AnyObject) { 104 let fileURL = Bundle.main.url(forResource:“tortoise”, withExtension:“png”) 105 Alamofire.upload(fileURL!,to:“https://httpbin.org/post”) 106 .validate() 107 .response
用户5760343
2019/07/08
3.6K0
使用linux上传代码到gitee
一、 git的安装 sudo yum -y install git 检查是否安装成功 git --version(这个是输入) git version 1.8.3.1 (若安装成功会自动弹出) 二、过程 1. 仓库链接 首先登录gittee,进入仓库,并找到克隆/下载 点击下载后,找到HTPPS并复制链接 2.linux中的操作 进入你想要传的文件目录中 [yzq@VM-8-8-centos ~]$ cd mk [yzq@VM-8-8-centos mk]$ ls main.c ma
lovevivi
2022/11/10
7080
使用linux上传代码到gitee
Git上传项目代码到github上
1、在github上申请账号,并New Repositories(我的名字是April-Taurus),新建的Repository默认master为其主干分支
杨肆月
2019/08/15
1.2K0
Git上传项目代码到github上
存取json数据到数据库
开发中可能会遇到这样的需求:比如说页面的一个N*N的表格中需要存取多个字段,如下图所示,很明显这里是需要支持动态添加的,如果此时我们建立对应的字段如插入的话,显然是一种比较麻烦的方式,所以我们可以使用在对应的实体类中添加一个List或者是JsonArray字段来表达对应的字段。如图二所示:
关忆北.
2021/12/07
1.3K0
存取json数据到数据库
java图片上传服务器保存路径(如何上传文件到网站服务器)
好了现在重点就是看Upload 这个类了 这个类基本是封装好了的,需要 加的东西可以自己取看看然后修改
Java架构师必看
2022/04/11
8K0
点击加载更多

相似问题

Android分块上传图片和JSON数据到服务器

82

Android上传JSON到服务器错误

21

JSON和上传图片到服务器

21

Javascript / Json / Firestore代码到firestore批量上传

113

如何批量上传JSON数据到Cloudant?

120
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文