&gt; Sometimes a programming design pattern becomes common enough to warrant its own special syntax. Python’s list comprehensions are a prime example of such a syntactic sugar.<p>I disagree with this thesis, although the post is otherwise a very nice guide to list comprehensions. Special syntax for specific types indicates a failure of the language to be generic enough.<p>List comprehensions anoint lists as a special <i>thing</i>. You don&#x27;t get to play with list comprehensions, unless you&#x27;re using the type that the language has decided to let you play with. If you decide to use a different type for some reason, you... can&#x27;t.<p>map and filter can be part of a typeclass&#x2F;interface&#x2F;protocol (in Python these would just be informal), so you can use them on arbitrary types. If you want to switch your list type, it should just work.<p>I write a lot of Swift, and I&#x27;m constantly frustrated that optional chaining (?.) and exceptions are special <i>things</i>. I can&#x27;t implement ?. for my type (say, a Result). Only the language creators can use it. Somewhat confusingly, ?? <i>is</i> a thing I can implement.<p>In Python&#x27;s case, I think that list comprehensions are necessary because the language&#x27;s support for first-class closures is poor.