Как я могу получить список последовательных пар (кортежей) из списка без рекурсии?Последовательные пары из списка в haskell
Например: [1, 2, 3, 4]
будет [(1, 2), (2, 3), (3, 4)]
Как я могу получить список последовательных пар (кортежей) из списка без рекурсии?Последовательные пары из списка в haskell
Например: [1, 2, 3, 4]
будет [(1, 2), (2, 3), (3, 4)]
\xs -> zip xs $ tail xs
или zip <*> tail
.
Последнему лучше написать 'zip <*> tail'. Я на самом деле не большой поклонник этих функциональных хакеров, но я должен признать, что это довольно мило. – leftaroundabout
Он не сохраняет никаких скобок здесь, так что whatevz, но уверен. – Gurkenglas
'ap' несколько устарел, так как' Applicative' является суперклассом «Monad» (по крайней мере, в GHC и при условии, что он принят стандартом Haskell 2014). – chepner
также, '(\ xs-> [(x, y) | (x: y: _) <- tails xs])'. ['tails'] (http://hackage.haskell.org/package/base-4.8.2.0/docs/Data-List.html#v:tails) определяется с рекурсией, но тогда это' zip'. –