>>>>> "j" == jun writes: j> Yes, I just know subseq. And there are also seq-subseq, seq-take, seq-drop, j> butlast, Two many and hard to remmber. Almost all of them are implemented j> in lisp except copy-sequence which is in C. Some of them are implemented by j> copying the whole sequence and then modify the copy. If we add the two args j> to copy-sequence, then these functions can be based on it with only one or j> two lines in lisp, and reduce some data copy. Does the two args make j> copy-sequence too much complex internally? Ah, subseq, there it is. I kept looking for sublist or some variant thereof. It's not that it's too complex internally, it's that extracting a sublist is not the purpose of copy-sequence. You are asking us to add extra arguments to a function to double its purpose, in a way that's more than just "copying a sequence", as the name implies. I'm very much against shoe-horning other behaviors into functions that appear "close enough" for this sort of convenience. Please use cl-subseq. If we need to move subseq into C, that's a different request, and could be made on grounds of efficiency or speed. But I won't make copy-sequence more complex for this reason. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2