Writing this really thrust upon me how different lisp and python are. `fruits[:3]+fruits[3:]` cute syntax in lisp is the symbolic expression ``` (concatenate 'list (subseq *fruits* 0 3) (subseq *fruits* 3)) ``` 1. Perform the function named `concatenate` 1. with a resulting type named `list` on 1. - the function named `subseq` on the value named `*fruits*` from 0 below 3 1. - the function named `subseq` on the value named `*fruits*` from `3` We saw it is possible and in specialized contexts convenient to modify lisp's `*readtable*` with a python-like slicing syntax based on lisp's `loop` facility. ``` CL-USER> #2[(10 1) '#.(loop :for x :below 11 :collect x)] #(10 8 6 4 2) ``` however even here showing my python-style slicing read macro you see I wrote a symbolic description of the numbers I wanted. Sandewall resisted his university's adoption of python because lisp's symbolic normalised string data structure and conventions were not easily available in python. I guess it would by myopic for me not to mention [cl-series](/cl-series/intern-everything/) and [cl-slice](https://quickref.common-lisp.net/cl-slice.html), but my examples have been pure ansi common lisp. The python tutorial I saw on the Mastodon was https://www.pythonmorsels.com/slicing .