It is *supposed* to drop the elements of a list as long as they evaluate the predicate to 'true'. As soon as the predicate evaluates to false then that element and the rest of the list are returned. It is *not* the equivalent of filter/2 with the inverse test.<div>
<br></div><div>Robert</div><div><br></div><div><br><div class="gmail_quote">2008/6/13 Matt Handler <<a href="mailto:matt.handler@gmail.com">matt.handler@gmail.com</a>>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
dropwhile does not work properly as defined in R12B-2:<br><br>01 dropwhile(Pred, [Hd|Tail]=Rest) -><br>02    case Pred(Hd) of<br>03       true -> dropwhile(Pred, Tail);<br>04       false -> Rest<br>05    end;<br>
06 dropwhile(Pred, []) when is_function(Pred, 1) -> [].<br>

<br>it returns the entire list once it finds an element that doesn't match true.<br><br>here's what i did instead:<br><br>dropwhile(Fun, List) -><br>    [Element || <br>    Element <- List,<br>    Fun(Element) =/= true].    <br>

<br>thanks,<br><font color="#888888">-matt<br>
</font><br>_______________________________________________<br>
erlang-bugs mailing list<br>
<a href="mailto:erlang-bugs@erlang.org">erlang-bugs@erlang.org</a><br>
<a href="http://www.erlang.org/mailman/listinfo/erlang-bugs" target="_blank">http://www.erlang.org/mailman/listinfo/erlang-bugs</a><br></blockquote></div><br></div>