haskell中完整的缩进规则集

2024-02-20

从哪里可以获得 Haskell 代码编写的完整缩进规则集?

过去的问题与我的以下问题类似,导致我提出上述问题。错误消息背后的原因是什么:parse error on input 'something'?

我收到的错误消息:

Baby.hs:103:2:输入“myList”时解析错误(此行中的错误)

我正在尝试编译的代码:

myList = ["aeroplane", "Aeroplane", "AeRoPlAne", "helicopter", "HELICOPTER", "Zebra"]
quicksort :: (Ord a) => [a] -> [a]  
quicksort [] = []  
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]  
biggerSorted = quicksort [a | a <- xs, a > x]  
in smallerSorted ++ [x] ++ biggerSorted

优化者编辑:

我将问题中的代码转移到新的 .hs 文件并尝试编译它。仍然存在类似的错误消息。详情如下:

Error
QuickSort.hs:5:62:输入“=”时解析错误 失败,已加载模块:无。 (0.02 秒,0 字节)

代码 快速排序 :: (Ord a) => [a] -> [a]
快速排序 [] = [] 快速排序 (x:xs) = 让smallSorted = 快速排序[a | a 更大的排序 = 快速排序 [a | a x]
在较小的排序 ++ [x] ++ 更大的排序中
myList = [“飞机”、“飞机”、“AeRoPlAne”、“直升机”、“直升机”、“斑马”、“美国”]


至少对于标准Haskell(没有语言扩展),布局规则有解释在 Haskell 2010 报告的第 10.3 节中。 http://www.haskell.org/onlinereport/haskell2010/haskellch10.html#x17-17800010.3

根据您的口味,该报告可能有点正式。 Haskell 的各种教程和教科书对布局规则有一些更非正式的解释,例如哈斯克尔维基百科。 http://en.wikibooks.org/wiki/Haskell/Indentation

在您的特定情况下,错误消息指向第 103 行,但您只粘贴了几行。我可以看到至少 let-in 结构的缩进被破坏了。您应该编写如下内容:

xs = ["aeroplane", "Aeroplane", "AeRoPlAne", "helicopter", "HELICOPTER", "Zebra"]
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) = let smallerSorted = quicksort [a | a <- xs, a <= x]
                       biggerSorted = quicksort [a | a <- xs, a > x]
                   in smallerSorted ++ [x] ++ biggerSorted
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

haskell中完整的缩进规则集 的相关文章

  • Haskell 真的是纯粹的吗(有任何语言可以处理系统外的输入和输出)吗?

    在谈到函数式编程中的 Monad 后 该功能是否真的使语言变得纯粹 或者它只是黑板数学之外的现实世界中计算机系统推理的另一张 免狱卡 EDIT 这不是有人在这篇文章中所说的火焰诱饵 而是一个真正的问题 我希望有人能用它来击倒我并说 证明 它
  • 如何向 Scotty 中间件添加基本身份验证?

    我目前正在制作 Scotty API 但找不到任何 basicAuth 实现的示例 Wai Middleware HttpAuth 具体来说 我想将基本身份验证标头 用户 通行证 添加到我的某些端点 即以 admin 开头的端点 我已经设置
  • typedef 基本数据类型什么时候有意义?

    一家公司的内部 C 编码标准文档指出 即使对于 int char 等基本数据类型 也应该定义自己的 typedef 例如 typedef int Int 代码的可移植性证明了这一点是合理的 然而 是否有关于何时 针对哪种类型的项目 真正有意
  • Haskell 二进制解析

    我一直在尝试在 haskell 中实现一个协议解析器 而且我对这门语言还很陌生 特别是当涉及到 monad 时 我一直在使用binary 0 5 0 2 并描述了协议的标头和所有有效负载 我想要解析的消息如下所示 header payloa
  • 计算两点之间的距离(Haskell)

    给定两个元组的输入 我希望能够使用以下公式计算两点之间的距离 距离 sqrt x1 x2 2 y1 y2 2 所以我希望函数调用和输出如下所示 gt distance 5 10 3 5 5 385 当我尝试运行下面的代码时 它告诉我输入 w
  • 为什么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 但是
  • 将 Either 列表转换为其中包含列表的 Either 列表

    我是 Haskell 的初学者 我正在编写一些使用 Haskell 的代码Either https hackage haskell org package base 4 9 0 0 docs Data Either html用于错误处理 E
  • 如何将只缓存某些内容的字段添加到ADT?

    我经常需要向 ADT 添加字段 仅记住一些冗余信息 但我还没有完全弄清楚如何又好又高效地做到这一点 说明问题的最好方法是举个例子 假设我们正在使用无类型 lambda 项 type VSym String data Lambda Var V
  • 存在函数依赖关系时类型推断如何工作

    考虑下面的代码 LANGUAGE MultiParamTypeClasses FlexibleInstances FunctionalDependencies UndecidableInstances FlexibleContexts cl
  • 为什么 exceptT 没有 MonadMask 实例?

    爱德华 克梅特例外情况图书馆不提供单子掩码 https www stackage org haddock lts 7 18 exceptions 0 8 3 Control Monad Catch html t MonadMask实例为Ex
  • 什么是阴谋地狱?

    在阅读有关 阴谋地狱 的内容时 我有点困惑 因为这个词的含义太多了 我猜最初 Cabal Hell 指的是钻石依赖问题 该问题是通过限制构建计划在每个构建计划中只有任何包的单个版本来解决的 一个包的两个不同版本不能存在于单个构建计划中 正如
  • 如何处理在组合下发生变化的类型?

    我最近读了一篇非常有趣的论文单调性类型 https infoscience epfl ch record 231867 files monotonicity types pdf其中描述了一种新的 HM 语言 该语言可以跟踪操作之间的单调性
  • Haskell 排列库函数 - 请澄清一下?

    这是代码permutationsHaskell 中的函数Data List module permutations a gt a permutations xs0 xs0 perms xs0 where perms perms t ts i
  • PHP 编码风格回归;在开关/外壳中

    我们正在尝试为我们的团队实施新的编码风格指南 当未找到 break 时 php codeniffer 会在 switch case 语句上打印警告 如下所示 switch foo case 1 return 1 case 2 return
  • 在 Haskell 中创建 100 万个线程需要多长时间?

    据我了解 Haskell 有绿色线程 但它们的重量有多轻 是否可以创建100万个线程 或者 100 000 个线程需要多长时间 from here http www reddit com r programming comments a4n
  • 超过两个点的Python相对导入

    是否可以使用路径中包含两个以上点的模块引用 就像这个例子一样 Project structure sound init py codecs init py echo init py nix init py way1 py way2 py w
  • 太多的导入正在垃圾邮件我的 Java 代码

    在我的项目中我有一个shapes包含我为图形程序设计的形状的包 例如 长方形 and Circle 我还有一两个同名的软件包java awt类 现在 由于我不想重命名代码库中的每个类 为了显示我的源文件 当我声明一个新的矩形时 我需要执行以
  • Haskell - 翻转具有两个参数的类型类的参数

    我有一个多参数类型类 它提供了一个可以交换其参数的函数 class Swappable a b where swappable a gt b gt Bool So if a and b form Swappable a b then b a
  • 数据类型变体之间的转换

    假设我想创建一种数据类型的两种变体 一种具有特定的构造函数 另一种没有它 否则它们是相同的 我想出了这个 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

随机推荐

  • 在 Windows Sharepoint Services 3.0 中仅编辑拥有的列表项

    有没有办法限制 WSS 3 0 中的 编辑项目 权限 仅允许用户编辑自己的文档或列表项目 我们需要用户能够仅编辑他创建的文档 列表项目 而不是其他人创建的项目 因此 本质上我们需要 EDIT 权限和 ADD 权限的子集 这在 Windows
  • 如何将 csv 添加到 cassandra 数据库?

    我知道这可以用传统方式完成 但是如果我要使用 Cassandra DB 是否有一种简单 快速且灵活的方法将 csv 作为一组键值对添加到数据库中 能够通过 CSV 文件添加时间序列数据是我的首要要求 我可以切换到任何其他数据库 例如 mon
  • JQUERY 如何在拖动时禁用不允许的光标?

    我遇到了不允许的光标问题 拖动 拖动 元素时 出现不允许的光标 我无法再拖动它 我怎样才能防止这种情况发生 我想让我的 拖动 元素在鼠标按下时始终为 绝对 注意 我知道它可能因为 指针事件 而发生 但我需要将它包含在这段代码中 一些代码 d
  • 为 MVC2 AsyncController 构建单元测试

    我正在考虑将我的一些 MVC 控制器重写为异步控制器 我对这些控制器进行了工作单元测试 但我试图了解如何在异步控制器环境中维护它们 例如 目前我有这样的操作 public ContentResult Transaction do stuff
  • Bootstrap 3 Modal:如何使用 jquery/javascript 检查模式是否打开或关闭

    谁能告诉我如何检查 bootstrap 3 0 模式状态 它是使用 jQuery 或 javascript 打开还是关闭 我使用了以下代码 但当您打开模式一次时它会起作用 否则会出现数据未定义错误 if addMemberModal dat
  • 我在 C 中遇到超过时间限制的错误。如何克服它?

    c 性能分析时间限制编写该程序的目的的详细信息在链接上给出 https www spoj com problems CRCLE UI https www spoj com problems CRCLE UI 并且错误超过时间限制 inclu
  • JSF/RichFaces:条件文本样式

    我有一个可以是或否的字符串 在 Java 支持 bean 的对象中实例化 我似乎无法找到根据 JSF 是否从 bean 分别获得 是 或 否 来有条件地将文本设置为红色或绿色的最佳方法 我正在使用 richfaces 但我应该使用
  • 查找包括隐藏和折叠节点的逻辑子节点

    我尝试找到这个问题的答案 在我发现的每一篇文章中都有一个递归查找子项的答案 但它们都不适用于隐藏或折叠的子项 此外 在每一篇文章中 都有人问这是否可能 但没有人回答 所以我开始认为这是不可能的 如果有人有办法做到这一点 我将永远感激不已 我
  • SimpleDateFormat 解析 2 月 29 日的日期错误 [重复]

    这个问题在这里已经有答案了 我有这个有线 public static boolean isFirstDayOfMonth String format String value SimpleDateFormat sdf new SimpleD
  • 如何删除所有没有任何关系的节点 - neo4j/cypher

    我正在 neo4j 数据库中生成节点 并希望删除那些没有关系的节点 执行此操作的最佳密码指令是什么 Try MATCH n WHERE size n 0 DELETE n
  • 在 Firebase 中存储 id 列表

    我不知道如何用 firebase 解决这个问题 我有用户 每个用户都有帖子 每个帖子都有一个由 firebase 生成的 id 如何将这些 id 存储在用户节点中 我正在使用字符串 连接它们 在我的 js 应用程序中解析它们 基本上将它们视
  • 了解 Go 通道死锁

    package main import fmt time func main p producer for c range p fmt Println c func producer lt chan string ch make chan
  • 如何在Android Studio中制作选择器

    在学习课程时 我被指示为 Button 制作一个 xml 选择器 课程说要在 Eclipse 中制作新的 Android xml 但我使用的是 Android Studio 另外 当我自定义编写代码时 它会给我一个错误 它说 必须声明元素选
  • 如何使用JS下载视频标签?

    我有一个链接 我想从中下载视频
  • uitableview 在 iOS 中删除按钮图像

    我想更改 uitableview 单元格的滑动按钮图像 我已经搜索过了 但没有得到想要的结果 我用过这段代码 void willTransitionToState UITableViewCellStateMask state super w
  • 在一次调用中从多个表中选择

    在我的代码中 我有一个页面 其中包含来自 3 个不同表的信息 为了显示此信息 我进行了 3 个 SQL 选择调用 并将它们合并在一个列表中 以作为模型传递到我的视图 我可以通过一次 SQL 调用来完成此操作吗 数据之间没有任何联系 My c
  • 如何创建特定(R、G、B)颜色的 openCV 图像并获取该颜色名称?

    我需要创建一个填充一些 R G B 颜色的图像 并获得该颜色名称 例如 R G B 黑色或红色等 我们可以用 openCV 做这样的事情吗 如何做 具有静态方法的静态颜色图类 两个答案相结合 只需复制并使用即可 pragma once in
  • 按时间范围删除数据存储中的行

    我有一个 CKAN 数据存储 其中有一个名为 recvTime 的时间戳类型列 即在 datastore create 时使用 timestamp 作为类型 如这个链接所示 https github com telefonicaid fiw
  • 在php中从json_decode()获取值时出错?

    我有一个示例代码 description 2G Network GSM 850 900 1800 1900 3G Network HSDPA 850 900 1700 1900 2100 data json decode descripti
  • haskell中完整的缩进规则集

    从哪里可以获得 Haskell 代码编写的完整缩进规则集 过去的问题与我的以下问题类似 导致我提出上述问题 错误消息背后的原因是什么 parse error on input something 我收到的错误消息 Baby hs 103 2