不在范围内:数据构造函数

2023-12-03

我写了一个程序haskell但我从 ghci 收到错误

这是源代码,我构建它,如果我有

p1 :: Prop
p1 = And (Var 'A') (Not (Var 'A'))

它将显示A && ~A这就是源代码

import Data.List
import Data.Char
data Prop = Const Bool | 
        Var Char | 
        Not Prop | 
        And Prop Prop | 
        Or Prop Prop | 
        Imply Prop Prop
        deriving Eq
instance Show Prop where
  show (Var Char) = show Char
  show (Not Prop) = "(~" ++ show Prop ++ ")"
  show (And Prop Prop) = "(" ++ show Prop ++ "&&" ++ show Prop ++ ")"
  show (Or Prop Prop) = "(" ++ show Prop "||" ++ show Prop ++ ")"
  show (Imply Prop Prop) = "(" ++ show Prop "=>" show Prop ++ ")"

我从 ghci 得到了两个主要错误......

Not in scope: data constructor `Char'
Not in scope: data constructor `Prop'

我是 haskell 的初学者,非常感谢。


以大写字母开头的值名称保留用于构造函数, like Var, True, False等。变量必须以小写字母开头。

此外,不能对两个不同的变量使用相同的名称。每次使用它们时,Haskell 如何知道你指的是哪一个?您不能简单地将构造函数的定义用作函数中的模式;您需要为每个字段指定一个单独的名称。

所以,而不是Var Char, write Var name;代替Imply Prop Prop, write Imply p q (or Imply prop1 prop2), 等等。

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

不在范围内:数据构造函数 的相关文章

  • 绑定变量时 Haskell 中的无限循环

    下面的 Haskell 代码不会终止 有人可以解释一下为什么吗 谢谢 f let x 10 in let x x x in x 我认为解释器首先绑定 x 10 然后将 x x 计算为 100 并绑定 x 100 环境变为 x 100 那么整
  • yesod——密码保护临时站点

    我正在尝试设置 yesod 网络服务器的临时实例 我想知道是否有一些简单的方法可以使整个站点受到密码保护 具体来说 我希望能够提示那些导航到我的网站的人提供凭据 经过身份验证后 它应该像典型站点一样运行 但如果他们无法验证自己的身份 他们就
  • Haskell,范围缩小到无步骤[重复]

    这个问题在这里已经有答案了 为什么在 Haskell 中工作范围不能降低到没有步骤 7 1 gt 但只工作这个 7 6 1 gt 7 6 5 4 3 2 1 Haskell 无法知道您想要执行 1 除非您给出提示 在某些情况下 您可能需要一
  • 算法 - 如何有效删除列表中的重复元素?

    有一个list L 它包含以下元素任意类型each 如何有效删除此类列表中的所有重复元素 必须保留订单 只需要一个算法 因此不允许导入任何外部库 相关问题 在Python中 从列表中删除重复项以使所有元素都是唯一的最快算法是什么在维持秩序的
  • 如何在 TH 拼接中复制 'name 的行为

    考虑这个 Haskell 文件 LANGUAGE TemplateHaskell OPTIONS GHC fplugin Test Inspection Plugin module Text main where import Test I
  • 谁能解释一下 GHC 对 IO 的定义吗?

    标题非常自我描述 但有一个部分引起了我的注意 newtype IO a IO State RealWorld gt State RealWorld a 剥离newtype 我们得到 State RealWorld gt State Real
  • 如何获取常量内存中的统计数据

    我有一个函数 它会创建一些随机的数值结果 我知道 结果将是 a 小 a b 约 50 范围内的整数a b 我想创建一个执行上述函数 1000000 次的函数 并计算每个结果出现的频率 该函数使用随机生成器来生成结果 问题是 我不知道如何在常
  • 为什么haskell中的递归列表这么慢?

    我对 Haskell 很陌生 我在 Haskell 中定义了一个函数 febs Integral a gt a gt a febs n n lt 0 0 n 1 1 n 2 1 otherwise febs n 1 febs n 2 但是
  • 解析 PHOAS 表达式

    我想我理解 PHOAS 参数化高阶抽象语法 我明白了如何漂亮地打印一个表达式 参见http www reddit com r haskell comments 1mo59h phoas for free by edward kmett cc
  • 有什么方法可以在 do / while / let 块中打印出变量的类型吗?

    有没有办法打印出嵌套变量的推断类型ghci 考虑代码 let f g where g x Int x 那么 最好查询一下类型g e g t f g会打印出Int gt Int 您可以通过给出适当的错误类型注释并检查错误消息来诱骗此信息 Ma
  • 如何处理在组合下发生变化的类型?

    我最近读了一篇非常有趣的论文单调性类型 https infoscience epfl ch record 231867 files monotonicity types pdf其中描述了一种新的 HM 语言 该语言可以跟踪操作之间的单调性
  • Haskell 和 Idris 之间的区别:类型宇宙中运行时/编译时的反映

    因此 在 Idris 中 编写以下内容是完全有效的 item b Bool gt if b then Nat else List Nat item True 42 item False 1 2 3 cf https www youtube
  • Haskell 排列库函数 - 请澄清一下?

    这是代码permutationsHaskell 中的函数Data List module permutations a gt a permutations xs0 xs0 perms xs0 where perms perms t ts i
  • 简单的秒差距示例会产生类型错误

    我正在尝试编译这个简单的秒差距代码 import Text Parsec simple letter 但我不断收到此错误 No instance for Stream s0 m0 Char arising from a use of let
  • 将名称绑定到值与将值分配给变量

    阅读 Bartosz Milewski 的文章完整的 https www fpcomplete com school starting with haskell basics of haskell 3 pure functions lazi
  • 如何使用 Haskell 提交 html 表单

    我知道如何使用http 管道 http hackage haskell org package http conduit 2 1 0包的 simplehttp 从 URL 检索页面 现在如果那样的话怎么办 网页有一个输入文本字段和一个提交按
  • 为什么以下内容会并行运行而不是顺序运行?

    给定以下函数evalPair parPair and deepSeq分别 evalPair Strategy a gt Strategy b gt Strategy a b evalPair sa sb a b do a lt sa a b
  • 动态加载编译的 Haskell 模块 - GHC 7.6

    我正在尝试使用 GHC API 动态编译和加载 Haskell 模块 我知道 API 从一个版本到另一个版本波动很大 所以我专门谈论 GHC 7 6 我尝试在 MacOS 和 Linux 上运行相同的代码 在这两种情况下 插件模块都可以正常
  • 数据类型变体之间的转换

    假设我想创建一种数据类型的两种变体 一种具有特定的构造函数 另一种没有它 否则它们是相同的 我想出了这个 LANGUAGE KindSignatures LANGUAGE DataKinds LANGUAGE GADTs data Foo
  • Repa 数组上的并行 mapM

    在我最近的work https github com bgamari mixture model with Gibbs sampling 我一直在充分利用RVar http hackage haskell org packages arch

随机推荐

  • Xamarin Forms 和 Azure Easy Tables 同步问题

    我在 Visual Studio 中使用 Azure 作为后端开发 Xamarin Forms 应用程序已经有一段时间了 我遇到了一个非常奇怪的问题 请注意 我正在遵循本文中提到的方法blog 由于某些奇怪的原因 PullAsync 方法似
  • 测试用户角色,VB.NET中的授权属性

    我正在使用 ASP NET MVC 构建网站 我使用 VB 作为编程语言 我有几个问题 1 我创建了一个角色 经理 如何检查用户是否属于该特定角色 现在我正在使用 If My User IsInRole Manager Then Direc
  • 帮助解决Python UnboundLocalError:赋值前引用的局部变量

    我之前已经发布过类似的问题 但是 我想我可能误解了我的问题 所以我可以在这里发布我的原始代码 并寻找有人可以帮助我 我现在真的陷入了困境 非常感谢 from numpy import import math as M initial con
  • Google Scripts:如何调用一个函数在另一个函数完成后运行

    我有一个谷歌脚本 其中有 4 个不同的函数 需要一个接一个地运行 但一个函数可以在前一个函数完成 完成后运行 每个函数所需的时间各不相同 但平均每个函数大约需要 15 20 分钟 每个函数都会完成一个包含大量数据的电子表格 因此我想在触发器
  • 为什么 dagger graph 在 java 中可以工作,但在 Kotlin 中却说缺少 Provides,而我已经提供了?

    将 dagger 接口从 java 转换为 Kotlin 时遇到一些问题 我得到 Dagger MissingBinding java util Map 如果没有 Provides 注释的方法就无法提供 这是我的界面 interface T
  • 仅单击一个时,RecyclerView 第一项和最后一项发生更改

    我正在使用 recyclerview 来显示可以选择的兴趣列表 单击第一个项目也会选择最后一个项目 选择第一项 最后一项也被选中 选择是通过以下代码完成的 Override public InterestViewHolder onCreat
  • 无法将 AVCaptureDevice 与闪光灯一起使用

    对于我认为应该很简单的事情 我遇到了困难 我只想在 iOS 应用程序中拍照时点亮闪光灯 我所有的尝试都失败了或者只成功了 20 这是点亮闪光灯的代码 Here we have captureDevice hasFlash captureDe
  • 如何在 jfreechart、netbeans 中调整此图表的大小?

    我似乎无法操纵图表本身 我无法改变尺寸chartPanel createChartPanel 不断重写为chartPanel javax swing panel 我尝试创建一个方法modificarGrafico 但什么也没有 例子 htt
  • WSO2 ESB 4.8.1 中支持的 XPath 函数

    WSO2 ESB 4 8 1 似乎不支持以下 XPath 函数 escape html uri iri 到 uri 编码为 uri 有谁知道 WSO2 ESB 4 8 1 支持哪些 XPath 函数以及不支持哪些函数 Answer reco
  • 将图像(覆盖)放置在另一个图像(背景)的 x,y 上

    我需要在运行时动态地将图像放置在另一个图像上 精确地位于背景图像的 x y 位置 我有以下详细信息 叠加图像属性 红色 x 58 y 232 h 266 w 431背景图片 黑色 match parent w 1024 h 768 这里 x
  • 训练后如何获取神经网络参数?

    我正在使用 matlab 的神经网络进行分类 我想知道如何存储网络参数 例如 纪元 时间 MSE等 训练后在矩阵中 多谢 打电话时train 第二个返回的参数是培训记录 其中包含有关训练的纪元 时间和其他信息 例如 net tr train
  • 检查未知对象中的对象是否存在的最有效的Javascript方法[重复]

    这个问题在这里已经有答案了 这是我在 Javascript 中经常遇到的事情 假设我有一个这样的对象 var acquaintances types friends billy 6 jascinta 44 john 91 others Ma
  • 詹金斯下的git克隆/ssh

    我使用 stash 作为 git 存储库管理器 stash 使您能够为每个尝试连接和克隆的用户添加 ssh 密钥 我已经为所有 UNIX 用户配置好了 但 Windows 却给我带来了困难 Windows 从机 2008 R2 服务器 上的
  • 自定义视图矩阵的拉伸问题

    我目前正在为我的项目开发自己的二维数学库 以提高我对底层矩阵数学的理解 过去我使用过 GLM 等库 但我觉得它可能值得研究作为一种学习经验 其中大部分都很简单 我的大多数数学课程都与 OpenGL 集成并运行良好 但是我的视图矩阵似乎在窗口
  • 使用字符串访问变量

    我目前有一个 Javascript 函数 它使用字符串来引用对象名称并访问其属性 我目前正在使用 eval 来获得所需的效果 我知道这是非常非常错误的 这是我目前如何实现我想要的目标的示例 var stringToObjectRef fun
  • iPhone上取消控制播放音乐时如何设置标题?

    我正在开发一个广播应用程序 它支持在后台播放音乐 但我陷入了如何设置音乐标题以取消控制的困境 The difference between my app and Music is as following 我应该怎么做才能让我的应用程序显示
  • 使用 RSA 密钥保护许可证密钥

    已经很晚了 我很累 而且可能很沉 我编写了一个需要保护的应用程序 因此它只能在我为其生成密钥的计算机上运行 我现在正在做的是获取 BIOS 序列号并从中生成哈希值 然后使用 XML RSA 私钥对其进行加密 然后我对 XML 进行签名以确保
  • 访问自定义数据注释内的依赖属性的简单方法

    我的上有以下属性DomainRegistry model Domain Extension public string Name get set Required ErrorMessage Select extension public s
  • Java字符串-将多个空格替换为一个,然后根据空格将字符串拆分为数组[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 假设我有一个字符串 s 2323 2323 232 3232 0 2 0 3 3232
  • 不在范围内:数据构造函数

    我写了一个程序haskell但我从 ghci 收到错误 这是源代码 我构建它 如果我有 p1 Prop p1 And Var A Not Var A 它将显示A A这就是源代码 import Data List import Data Ch