<div dir="ltr"><div><div class="gmail_signature"><div dir="ltr">Hello,</div><div dir="ltr">    According to <a href="http://rafal.io/posts/haskell-queues.html">http://rafal.io/posts/haskell-queues.html</a> (++) cant be used to implement queues in Haskell. The reason being that a push operation takes linear time which is indeed very valid given that (++) operates in linear time. However, since Haskell is lazy shouldn't (++) be implemented only when the need occurs? In head ([1..] ++ [10])</div><div dir="ltr">I sincerely doubt the the [10] is concatenated before evaluating the head of the list.</div><div dir="ltr"><br></div><div dir="ltr">Please note that this question is focused upon the internals of Haskell. I am aware that there are other approaches to implementing queues in Haskell.<br><br>Rohan Sumant<br></div></div></div>
</div>