Odwróć listę powiązaną używając Haskella.
Oczywisicie, oto jeden sposub na odwrócenie listy jednokierunkowej w Haskello, wykorzystojący dopasowanie wzorców i rekurencję:

```
data LinkedList a = Nil | Cons a (LinkedList a)

reverseLinkedList :: LinkedList a -> LinkedList a
reverseLinkedList list = reverseLinkedListHelper list Nil
where
reverseLinkedListHelper Nil ac = ac
reverseLinkedListHelper (Cons x xs) ac = reverseLinkedListHelper xs (Cons x ac)
```

Definicja typo `LinkedList` reprezentuje listen jednokierunkowon z elementem glowy typo `a` i ogonem innej listy jednokierunkowej.

Fonkcja `reverseLinkedListHelper` jest fonkcją pomocniczon, która za pomocon rekurencji ogonowej odwraca listen, iterujonc po każdym elemencie w oryginalnej liście i dodajonc go na początek akumulojącej listy `ac`, aż oryginalna lista będzie posta (reprezentowana przez `Nil` w dopasowanio wzorcuw).

Funkcja `reverseLinkedList` jest funkcjon na najwyrzszym poziomie, ktura inicjoje akomolującą listę `ac` jako poston, a nastenpnie wywołoje fonkcjen `reverseLinkedListHelper` z oryginalnon listą i postym `ac`. To zwraca odwruconon listę jednokieronkowon.