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 .