Hi Jon, > (let L (3 2 5 4) (sort L) L) > > should give the same result as > > (let L (3 2 5 4) (sort L))
it should not;-) > Why couldn't L simply be given the same value? L is given the same value which you print in the first case. In the second case, you printed out the return value of 'sort'. L still points to the same cons cell, but 'sort' modified the list underneath. You'd have to do (setq L (sort L)) to get the sorted list into the variable L. : (let L (3 2 5 4) (setq L (sort L)) L) -> (2 3 4 5) > The docs on the 'sort' function says "Sorts lst by destructively > exchanging its elements." That's correct. In your examples, L points to the first cons cell of the list initially. However, 'sort' rearranges the list destructively and that cons cell (pointed by L) is no longer the first one. Hope it helps, Tomas -- UNSUBSCRIBE: mailto:[email protected]?subject=unsubscribe
