Сопряжение соседних элементов списка в Haskell

у меня есть связанный список вроде

["root", "foo", "bar", "blah"]

, и я хотел бы преобразовать его в список кортежей, используя соседние пары. Примерно так

[("root", "foo"), ("foo", "bar"), ("bar", "blah")]

На данный момент я использую это для этого:

 zipAdj x = tail (zip ("":x) (x++[""]))

Однако мне этот метод не очень нравится. Кто-нибудь может придумать лучший способ? Если это явно очевидно, прошу прощения, я новичок в Haskell.

11
задан Don Stewart 13 May 2011 в 17:54
поделиться