First:probably my solution runs slower then correct solution, isn't it?? becouse my solution sets 'list' for each iteration and lacks "remove-duplicates " that parse the vector...then, is my solution more inefficient than correct solution? then is always preferable works with latter?thanks in advance

While the code is longer, it will do it in general faster + it will return the preceding elements in the same order they appeared in the source vector (sans repetitions).For some reason the exercises which use lists for the purpose they aren't good for are very trendy in Lisp :/ This is certainly a task that benefits from using a hash-map.

HI Paul , wvxvw and stackman ...thanks for your support and suggestions!!

Now I have some questions for wvxvw about his syntax's code that are new for me

First: ---- the third, fourth and fifth expressions in the fisrt “do”’s argument : compare-to result backref will be evaluated and returned as the value of the do loop when iteration terminates, as happens in dolist ??right? then so far it's ok..but:

Second:--- is it possible call variables or expression before declare it? Also in an iterations or conditionals?What seems strange to me is that it’s possible ,for example, initiate a conditional with a variable or expression that will be defined afterwards!!!:for example in your code : > (if result… setf result (list compare-to)….)result is also used as expression of second argument in "do"....... honestly now I'm a little confused about this behavior....can you briefly explain me that???thanks again!!!

Perhaps, confusing terminology here. Usually, when you say "call", you intend to call something which is callable. In the context of CL that would be either functions or macros. So, if you are asking if it is possible to call a function before it is declared, then answer would be that, you can, sort of, but not directly. For example:

Hi and thanks very much guys for good explanations!!! eventually I continue to make the same mistake!! uffff : I forget that it’s possible initialize a variable without value, then take nil to default…