首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取输入“=”解析器上的解析错误,即使我的缩进看起来是正确的

获取输入“=”解析器上的解析错误,即使我的缩进看起来是正确的
EN

Stack Overflow用户
提问于 2022-05-05 04:53:28
回答 1查看 86关注 0票数 0

我是Haskell的初学者,我正在尝试创建一些小的算法来理解Haskell的语法,我试图编写和编译一个快速排序算法,但是它在编译时给了我一个错误。

代码语言:javascript
运行
复制
quicksort [] = []
 quicksort (x:xs) = quicksort small ++ (x : quicksort large)
   where small = [y | y <- xs, y <= x]
         large = [y | y <- xs, y > x]

有人能帮我理解为什么我在代码的第2行出现这个错误吗?parse error on input ‘=’parser

谢谢,

我在这个平台上也是新的,所以如果我不够清楚或者我需要改进我的问题,请在评论中告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-05 07:38:52

哈斯克尔的监察事宜。我可以重现你的错误

代码语言:javascript
运行
复制
quicksort [] = []
 quicksort (x:xs) = quicksort small ++ (x : quicksort large)
   where small = [y | y <- xs, y <= x]
         large = [y | y <- xs, y > x]

.code.tio.hs:2:19: error:在输入‘=’上解析错误,也许您需要在'do‘块中使用'let’?

但是,当您删除第二个quicksort之前的空格时,它会编译得很好。

从技术上讲,当您使用{};时,您可以使用任何一种任天堂。--这是不推荐的,,因为您将很难找到需要大括号的确切位置,而且示例很少。(“稀有”如“濒危物种”/“几乎灭绝”)

代码语言:javascript
运行
复制
{
quicksort [] = [];
 quicksort (x:xs) = quicksort small ++ (x : quicksort large) -- no `;` before `where`
   where {small = [y | y <- xs, y <= x];
         large = [y | y <- xs, y > x]};
main = print . quicksort $ "hello"
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72122068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档