数据声明 Haskell 中的类型约束

2023-12-30

我正在使用 Haskell 并尝试编写以下内容:

data Scale s = Scale s s

但是,我想做到这一点s必须是 Num 类型类的内容,例如 Int 或 Double。使用 Haskell 和 GHC 可以做到这一点吗?


Yes:

{-# LANGUAGE GADTs #-}
data Scale s where
    Scale :: Num s => s -> s -> Scale s

然而,这通常被认为是最佳实践not去做这个。相反,将Num仅对使用的函数进行约束Scales and need the Num约束。放松这些约束可以让你在适当的时候暂时打破不变量;例如希望有一个是很常见的Functor这种类型的实例,如果您像上面那样约束构造函数,这是不可能的。

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

数据声明 Haskell 中的类型约束 的相关文章

随机推荐

  • 如何强制 Hibernate 返回空值而不是 null?

    我正在使用 Oracle 11GR2 当 varchar2 字段为空时 执行System out println空白字段上将显示null在我的 Eclipse 控制台上 我怎样才能让它显示空字符串 在 getter 中使用这个技巧很好 但它
  • SameSite None 未在 Azure Web App 中设置 cookie 属性

    为了准备 Chrome 80 中 SameSite 即将发生的更改 我已将 NET Framework API 从4 6 2 to 4 7 2 我创建了一个简单的测试端点 只需设置一个 cookieSameSite None public
  • 强制下载 iOS 5.0.1 符号

    一位客户向我发送了 iOS 5 0 1 9A405 设备的崩溃日志 我在 Snow Leopard 上运行 Xcode 4 2 崩溃日志调用堆栈的系统部分无法符号化 并且它们似乎与崩溃相关 Xcode 中没有 iOS 5 0 1 符号 我没
  • WIX - 对安装取消运行自定义操作

    我正在使用 WIX 编写安装程序 当用户按下 取消 按钮时 我需要执行自定义操作 我创建了一个自定义操作 但我似乎找不到在哪里使用该操作 有什么想法我该怎么做吗 尝试类似的方法
  • 导航栏随着 CSS 动画消失

    我正在使用 Animate css 库中的 CSS3 动画 它们真的很棒 当我将它们与 WOW js 结合起来时 它们工作得非常完美 但是 当我向下滚动页面并且动画进入屏幕时 屏幕顶部的固定导航栏会消失几秒钟 动画显示的时间 然后返回屏幕
  • 适用于 Android 和 iOS 的应用程序 OpenStreetMap [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想使用 OpenStreetMap 制作一个移动本机应用程序 Android 和 iOS 我需要离线
  • Swift 中的惰性属性相当于 Objective C 中的惰性 Init getter

    Swift 中的惰性属性是否相当于用 Objective C 中的惰性加载模式覆盖 getter 来自文档 惰性存储属性是指直到第一次使用时才计算其初始值的属性 您可以通过在声明之前写入惰性属性来指示惰性存储属性 所以 大多数情况下 是的
  • 位图图像未显示在 imageview 中

    我创建了一个应用程序 在其中允许用户从图库中选择图像或从相机拍摄照片并将该图像上传到网络服务器 此代码工作正常 现在在其他屏幕中 我正在从网络服务器下载图像并存储该图像在 SD 卡中 问题是 如果从图库中选择图像 则图像将显示在图像视图中
  • ANTLR:自定义语法示例的词法错误帮助

    什么方法可以让我最大限度地报告词法错误 举一个简单的例子 我想为以下文本编写语法 为了简单起见 空格被忽略 字符串常量中不能有 myvariable 2 myvariable hello world Group myvariablegrou
  • 使用 window 作为原型在 javascript 中返回看似错误的值

    您希望此代码返回 123 但它返回的是窗口对象 function W this window 123 W prototype window new W window window object not 123 请检查后续问题 window
  • ElasticSearch 中过滤的嵌套inner_hits 查询的聚合

    我刚接触 ElasticSearch 几天 作为一项学习练习 我实现了一个基本的职位抓取工具 它聚合来自几个职位列表网站的职位 并用一些数据填充索引供我使用 我的索引包含每个列出职位的网站的文档 每个文档的属性都是一个 jobs 数组 其中
  • WPF - MVVM 屏幕管理

    想象一下您有一个复杂的数据对象 它足够复杂 以至于要编辑对象的各种属性 用户最好拥有多个屏幕 它本质上是一个配置项目的购物车 因此 一个屏幕就可以让您添加项目 另一种方法允许您对这些项目进行修改 即预先确定的更改 这些更改会产生相关成本 第
  • 使用 gnu asm 在 x64 中使用参数执行

    我正在尝试在 Linux 的 GNU asm 中编写 shellcode 但无法使用参数调用 execve 我正在尝试做什么 execve bin ls bin ls la NULL NULL 这是我的代码 section text glo
  • 在实体存储库中注入容器

    我想获取存储库中的当前区域设置 这就是为什么我将容器注入到我的存储库中 但我收到错误 我无法弄清楚 这是我的service yml code survey repository container aware class Demo Surv
  • webview 遇到重定向问题

    NSURL urlString NSURL URLWithString urlAddress URL Requst Object NSURLRequest requestObj NSURLRequest requestWithURL url
  • Laravel 5.4 artisan 为 /public 处的现有文件夹提供 htaccess / 和 Routes::get 服务

    我仍在尝试使用 Laravel 5 4 然而运行 php artisan server 没有考虑 public中的 htaccess文件 无论我在那里编辑什么 它仍然没有处理它 artisan服务运行在127 0 0 1 8000 我遇到这
  • 将 API 的响应作为节点服务器的响应传递会引发异常

    在某些情况下 当在我的节点 express 服务器上命中特定路由时 我想向 API 发出请求并将该响应直接返回给客户端 我关注了这个堆栈溢出帖子 将服务器端 axios 请求的响应发送到 React Redux 应用程序 https sta
  • 为什么 asp.net mvc 中的部分视图需要下划线

    只是为了区分对话框内使用的视图还是 foreach 循环 客户详细信息 中使用的视图 你不需要下划线 这只是一个约定 而MVC非常热衷于使用约定
  • Ruby on Rails 脚本控制台

    我没能跑 script console以前 它曾经抛出一个错误 因为我script console文件已包含 usr bin env ruby19 进行命中和试验后 我通过替换修复了此错误 usr bin env ruby19 with u
  • 数据声明 Haskell 中的类型约束

    我正在使用 Haskell 并尝试编写以下内容 data Scale s Scale s s 但是 我想做到这一点s必须是 Num 类型类的内容 例如 Int 或 Double 使用 Haskell 和 GHC 可以做到这一点吗 Yes L