【发布时间】:2018-10-24 10:27:51
【问题描述】:
我是 Haskell 的新手,但在其他一些语言方面我是老手。 (这个问题取自一个汇编语言练习,但我想在 Haskell 中解决它。这不是作业或测试问题的一部分)
鉴于: 具有列表内值的数组(列表)遵循以下模式:
第一项小于第二项,第二项大于第三项,第三项小于第四项,依此类推,(“波浪”)。
问题:
1 如何在 Haskell 中解决它? (我知道如何用其他可以处理数组索引的语言来解决它,但我不知道如何用函数式语言来解决它。
- 答案是否可以概括,以便解决其他模式?
【问题讨论】:
-
您如何尝试解决它并发布有关尝试解决方案的哪一部分让您感到困惑或造成麻烦的具体问题?获得一个问题的分数解决方案可能不会在很大程度上帮助您学习该语言。
-
1.我忘了提到问题是要求一个函数来测试数组是否遵循“波浪模式”。 2.这是一个普遍的问题:如何在不使用循环和数组索引的情况下检查列表中某个项目的特定属性?
-
1.如果您忘记了什么,您可以编辑问题,而不是在 cmets 中添加新信息。 2.您使用递归和模式匹配(或许多标准函数之一,如
map,foldr,filter,这是最接近“循环”的东西)。如果您是 Haskell 的初学者,请尽快学习模式匹配。教程通常会在早期介绍它,因为这在 Haskell 中非常重要。 -
我投票决定将此问题作为题外话结束,因为在 StackOverflow 上提问并不是学习新编程语言的基本知识的好方法。教程或书籍将以更有条理的方式介绍这些内容。