Hi all,<br><br>I'm trying to implement a function that returns the shorter one of two given lists,<br>something like<br>shorter :: [a] -> [a] -> [a]<br>such that shorter [1..10] [1..5] returns [1..5],<br>and it's okay for shorter [1..5] [2..6] to return either.
<br><br>Simple, right?<br><br>However, it becomes difficult when dealing with infinite lists, for example,<br>shorter [1..5] (shorter [2..] [3..])<br>Could this evaluate to [1..5]? I haven't found a proper implementation.
<br><br>Again it's ok for shorter [2..] [3..] to return whatever that can solve the above problem correctly.<br>An infinite list could work, I guess, but I don't know how.<br><br>Thanks for any help.<br><br>