首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >haskell解析错误,不正确的标识?

haskell解析错误,不正确的标识?
EN

Stack Overflow用户
提问于 2018-06-15 20:29:07
回答 1查看 56关注 0票数 0

我正在尝试编写一个程序,在输入中接受一个由列表(如[[1,2],[3,4],[5,6]] )组成的矩阵,并给出它的转置[[1,3,5],[2,4,6]]作为输出。

这个版本可以工作,但是它会产生一个错误,因为它到达列表的末尾并且没有停止。

代码语言:javascript
复制
transpose xxs = map head xxs : transpose (map tail xxs)

所以我试了这个

代码语言:javascript
复制
transpose xxs = if ((length xxs)>0) then 
            map head xxs : transpose (map tail xxs)

但我明白错误

解析错误(可能是不正确的缩进或不匹配的括号)

因此,我尝试不带括号地编写代码,所有代码都在一行中,没有缩进,但我没有设法解决这个错误。

我开始怀疑这不是括号或空格的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 20:48:03

我无法猜测为什么编译器会给出错误消息,但在Haskell中,所有if/then表达式都需要一个else情况:

代码语言:javascript
复制
transpose xxs =
  if (length xxs) > 0
  then map head xxs : prova (map tail xxs)
  else [[]]

在这里,我只将[[]]放在else分支中,因为这是我能想到的满足编译器的最简单的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50882284

复制
相关文章

相似问题

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