SML 中的 'a 和 ''a 有什么区别?

2024-04-11

例如:

fun example (a:'a list) : list = a

将有以下签名:

'a list -> 'a list 

如果我定义不同但内容相同怎么办,例如

fun example (a : ''a list) : list = a

它的签名是:

''a list -> ''a list

有什么不同?


一个普通类型变量,例如'a可以用任意类型替换。表格''a是一个所谓的平等型变量,这意味着它只能被允许使用相等运算符的类型替换= (or <>)关于他们的价值观。

例如这个函数:

fun contains(x, [])    = false
  | contains(x, y::ys) = x = y orelse contains (x, ys)

不能有类型'a * 'a list -> bool因为它使用了等式x。它被赋予了更严格的类型''a * ''a list -> bool.

大多数类型允许相等,但有些类型不允许,例如,real, exn,特别是任何函数类型t -> u。如果记录、元组或数据类型等组合类型的所有组件都承认相等,则它们也承认相等。

旁注:哈斯克尔后来将这个概念推广到它的概念类型类,它允许对类型进行任意用户定义的此类约束。相等类型变量被替换为Eq类型类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SML 中的 'a 和 ''a 有什么区别? 的相关文章

  • C# 类多态

    为什么下面代码的结果是 Class AA级A级 public class A public virtual void f Console WriteLine Class A public class B A public virtual v
  • 如何使用 Gson 在 asmx Web 服务的 Json 中包含对象类型

    当向 net 2 0中的asmx Web服务发送数据时 如何保留json字符串中的对象类型 例如 class A string name class B A string address 和网络方法 WebMethod public voi
  • 基于 php 示例的 C++ 中数据结构的多态性示例

    我正在学习多态 并且熟悉php 我发现了这个很好的例子https stackoverflow com a 749738 80353 https stackoverflow com a 749738 80353 转载如下 如何用 C 编写相同
  • 在 SML 中使用foldr 连接字符串

    我正在尝试声明一个函数 字符串列表 gt 字符串 例如输入 Chicago city USA 应该返回 Chicago city USA 到目前为止我所做的是 fun gather ts foldr op ts 这似乎有点符合 但问题是 我
  • 新数据成员的多态性

    我想编写一个可以使用多态性初始化和返回不同类的对象的函数 我还希望这些类具有可以通过虚拟函数调用的不同数据成员 我下面写的可能有用 你能检查一下我是否有一些未定义的行为吗 谢谢你 我担心的一件事是 当我最后调用 删除多点 时 它不会释放 C
  • 修复区域设置扩展中的类型变量

    鉴于此代码 locale A fixes foo a locale B A fixes bar a a locale C A fixes baz a begin sublocale B foo foo baz end I get Type
  • Fortran 指针多态性

    我正在尝试使用指针在对象之间创建链接 使用 Fortran 下面是代码片段 module base pars module type abstract public base pars end type end module module
  • 将其参数应用于自身的函数?

    考虑以下 SML 函数 fn x gt x x 这会产生以下错误 新泽西州标准 ML v110 72 stdIn 1 9 1 12 Error operator is not a function circularity operator
  • 如何返回派生类型?

    我有一个 Validator 类及其派生类 当我尝试返回指向派生类的指针时 方法返回基类 验证器 而不是派生类 class Validator public std string m name BaseValidator static co
  • 编译器错误:对调用的引用不明确

    Case 1 static void call Integer i System out println hi i static void call int i System out println hello i public stati
  • C++ 虚拟析构函数和 vtable

    我对虚拟析构函数和虚函数表有一些具体问题 假设我有以下代码 class Base public virtual Base class Child public Base public Child 问题 vtable存储在哪里 它是否始终位于
  • 实例变量的多态性[重复]

    这个问题在这里已经有答案了 这是我写的三个类 public class Shape public int x 0 public void getArea System out println I don t know my area pub
  • 解决 SML/NJ 编译管理器中的库冲突

    我正在使用 SML NJ 110 79 其中包括对 Successor ML 项目定义的新结构的支持 其中 Fn https github com SMLFamily BasisLibrary wiki 2015 005 Addition
  • 用多态性替换条件式

    我试图通过一个例子来理解这种干净的代码实践 考虑具有折扣开关盒的类产品 我正在尝试用多态性替换 switch 语句 代码之前 class Product String priceCode int discount Product Strin
  • R 中函数多态性的建议做法是什么?

    假设我想写一个函数R这是对某些数据进行充分统计的函数 例如 假设函数 调用它foo func仅取决于数据样本的样本均值 为了方便起见 我认为用户可能喜欢传递到foo func随机变量的样本 在这种情况下foo func计算样本平均值 or样
  • 在 C++ 中创建未知具体类型的副本

    假设我们有以下类层次结构 class Base class Derived1 public Base class Derived2 public Base Given a Base 这可能指向一个Derived1 or Derived2ob
  • 确定性时的虚函数开销 (c++)

    我知道虚拟函数本质上是包含在 vtable 中的函数指针 这使得多态调用由于间接等原因而变慢 但我想知道当调用是确定性时编译器的优化 我所说的确定性是指以下情况 该对象是一个值而不是引用 因此不可能存在多态性 struct Foo virt
  • 要统一的类型变量出现在类型中

    我有一个函数可以从两个列表重建一棵树 我返回所有分支的列表 但收到一个我不明白的错误 但我认为这与返回类型有关 错误是这样的 Can t unify a with a list Type variable to be unified occ
  • 我无法从指向派生类的指针和指向基类的指针的指针进行分配? [复制]

    这个问题在这里已经有答案了 可能的重复 派生 到基础 之间的转换 https stackoverflow com questions 8026040 conversion between derived to base 在主要使用 Pyth
  • number_in_month 练习(计算列表中的元素数)

    我一直在尝试使用 SML 对整数 3 元组列表中的元素进行计数 该列表等于给定的整数 但它不起作用 谁能帮我找出下面的代码有什么问题或者为我纠正它 fun number in month x int int int list m int i

随机推荐

  • ruby 中的 ||= 是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Ruby 中是什么意思 https stackoverflow com questions 995593 what does mean in ruby ruby 中的 是什么 这是一个条件分配 如
  • 用原始图像替换蒙版 opencv Python

    我正在尝试用原始图像像素替换使用蒙版找到的对象 我有一个遮罩 在未检测到物体的情况下显示黑色 如果检测到物体则显示白色 然后我在 where 语句中使用该图像 image np where image2 255 255 255 any ax
  • Hibernate:CRUD 通用 DAO

    我的网络应用程序有很多服务表 实体 例如payment methods tax codes province codes etc 每次添加一个新实体时 我都必须编写一个 DAO 问题是 基本上 它们都是相同的 但唯一的区别是实体类本身 我知
  • Android 平台源代码中的断点

    使用 Intelllj idea 我尝试调试 Android 源 API 17 但是当我在平台源中设置断点时 它们在运行时会被忽略 在调试时查看断点 其中有一个十字 并显示一条消息 在类 android view 的第 15 508 行找不
  • Spring - applicationContext.xml 无法打开,因为它不存在

    我有一个 Spring MVC 应用程序 并且与文件 applicationContext xml 结合使用 JUnit 测试时遇到问题 在我的 JUnit 测试类中我写道 final ApplicationContext context
  • 使用 XML 包将 html 表抓取到 R 数据帧中

    如何使用 XML 包抓取 html 表 以维基百科页面为例巴西足球队 http en wikipedia org wiki Brazil national football team 我想在 R 中阅读它并获取 巴西与 FIFA 认可球队对
  • 在 GIT 中处理 Rails db/schema.rb 文件的正确方法是什么?

    我们应该包括schema rb同时致力于 GIT 或者我们应该忽略它 什么是正确的做法 好标准schema rbRails 2 文件在文件顶部的注释块末尾有这样的内容 It s strongly recommended to check t
  • 警告:本机不支持快速启动/快照

    我在使用 android studio 运行我的应用程序时遇到错误 但在此之前它工作正常 直到更新 Android API27 我尝试卸载它但没有任何结果 收到的警告是 模拟器 警告 本机不支持快速启动 快照 A 目前需要CPU UG功能
  • 是否可以使用 TagLibSharp 从 MP3 文件中删除 Lyrics3v2 标签?

    我想知道是否可以删除歌词3v2使用 MP3 文件中的标签类型标签库夏普 https github com mono taglib sharp图书馆 This http id3 org Lyrics3v2文档说块条目以单词 开头歌词开始 并以
  • Android ViewPager:从 URL 下载图像

    我正在尝试使用创建一个图片库ViewPager 我找到了几个例子并且我已经让它们全部工作了 示例没有展示的一件事是如何使用从 URL 下载的图像填充 ViewPager 所有教程都有图像Drawables文件夹或 SD 卡上 有谁知道 Vi
  • 使用 SF 库读取 GeoJSON 文件?

    我一天前刚开始使用 R 我正在尝试使用 SF 库读取 geojson 文件 但我不确定正确的方法是什么 library dplyr library sf geo lt system file my path zones geojson pa
  • 由于函数 asprintf 无法编译程序

    找到此代码 需要停止将戴尔笔记本电脑中的 CPU 节流至 20 这是由于电源适配器无法被计算机识别而发生的 尝试在 Kubuntu 上编译并得到以下结果 warning implicit declaration of function as
  • 继续处理结果的 Null 值(Nodejs、Puppeteer)

    我刚刚开始使用 Puppeteer Headless Chrome 和 Nodejs 我正在抓取一些测试站点 当所有值都存在时 一切都很好 但如果该值丢失 我会收到如下错误 Cannot read property src of null
  • Microsoft Azure Graph API下载项附件内容

    当我在office365网页浏览器页面中打开电子邮件时 有一个选项可以下载该电子邮件的附件内容项目附件 使用 Microsoft Outlook 将另一封邮件附加到当前邮件 eml 文件 内容类型 RFC 822 但是 当我尝试通过 Gra
  • 监控 Spring Embedded Tomcat 指标

    我想监控 Spring Boot 服务中嵌入的 Tomcat Spring 本身为我提供了一些会话使用统计信息 但我需要有关底层线程池的其他信息 如活动连接 队列长度等 我搜索了注册的bean 但找不到使用的线程池 关于如何检索该信息有什么
  • PHP:如何检查一年中的季节并相应地设置类别

    我有一个网站 它在标题区域使用 4 种不同的背景图像 这些图像在视觉上对应于耳朵的季节 夏季 秋季等 对于夏季时间框架 我使用一张图像 对于秋季时间框架 使用另一张图像 依此类推 问题是 一旦一年中的季节发生变化 我就必须手动更改这些图像
  • 使用office.js进行office加载项开发时,无法在word文档的书签中插入文本

    我正在开发一个 word 插件 主要任务是使用数据库中的数据填充文档中的书签 在 office js 中 我发现书签可以作为范围对象进行访问 并且我正在使用 rangeObject insertText text insertLocatio
  • wpf c# 按钮等待按钮按下

    好吧 我是编码初学者 所以我想做的是按钮谁会等待用户单击多个其他按钮之一以继续 void Mainbutton the program run throw so method Wait for the user to choose one
  • 了解 htaccess 文件匹配代码

    我正在尝试将 drupal 安装在我的 bluehost 托管网站的子目录中 这是一个巨大的痛苦 我认为 htaccess 中的以下几行是问题所在 当我当前导航到 mysite com subdir install php 时 出现 403
  • SML 中的 'a 和 ''a 有什么区别?

    例如 fun example a a list list a 将有以下签名 a list gt a list 如果我定义不同但内容相同怎么办 例如 fun example a a list list a 它的签名是 a list gt a