【发布时间】:2018-12-24 22:04:01
【问题描述】:
假设我们有列表 [1,2,3,4]。 我想获取每对连续元素(即(1,2),(2,3),(3,4)),将它们应用于某个函数,并返回包含该函数结果的列表。 我不太明白,如何在 haskell 上执行此操作,因为我们这里实际上没有循环和数组。
【问题讨论】:
-
一旦您有了配对列表,您只需
map列表中的函数即可。不过,为了得到这对,我相信 Haskell 有一个partition函数可以满足你的需求。此外,Haskell 确实在技术上具有循环,只是没有正式的循环语言结构。大多数事情都是通过递归或一些使用递归的抽象来实现的(如map)。 -
提示:使用
zipWith。 -
@WillemVanOnsem 出于好奇,
[Haskell]标签是否会收到电话提醒或其他信息?对于 Haskell 问题,您的响应时间通常非常快。 -
你不能只用
zip做这个吗,没关系zipWith?如果您的列表是lst,那么zip (init lst) (tail lst)应该这样做,不是吗? [显然,如果您的列表可能是空的,您必须小心。] -
@Carcigenicate:你可以在标签中打开最新的问题。如果您将其固定,某些浏览器(例如 Firefox)会在标题更改时发出通知,仅此而已:)
标签: haskell