Lists:sublist oddity

Heinrich Venter <>
Mon Jan 30 10:16:28 CET 2006


I just discovered the following strange behaviour

32> lists:sublist([a,b,c],1,2).
[a,b]
33> lists:sublist([a,b,c],2,2).
[b,c]
34> lists:sublist([a,b,c],3,2).
[c]
35> lists:sublist([a,b,c],4,2).
[]
36> lists:sublist([a,b,c],5,2).
=ERROR REPORT==== 30-Jan-2006::10:59:47 ===
Error in process <0.72.0> with exit value:
{function_clause,[{lists,nthtail,[1,[
]]},{lists,sublist,3},{erl_eval,do_apply,5},{shell,exprs,6},{shell,eval_
loop,3}]
}

** exited: {function_clause,[{lists,nthtail,[1,[]]},
                             {lists,sublist,3},
                             {erl_eval,do_apply,5},
                             {shell,exprs,6},
                             {shell,eval_loop,3}]} **

It would appear that sublist works according to the docs when
(Start-length(List1)) = 1 but fails when (Start-length(List1)) > 1

>From the source it would appear that the documentation is wrong :(
sublist WILL in fact fail if Start > length(List1)+1.

-]-[einrich



More information about the erlang-questions mailing list