リスト内包表記を見比べると，なんとなくプログラミング言語の設計思想がわかる．Common Lisp を除けば．

Python

[x**2 for x in range(11)]

わかる．

Haskell

[x^2 | x <- [0..10]]

わかる．

Scheme

(map (cut expt <> 2) (iota 11))

わかる．

Common Lisp

(loop for x from 0 to 10 collect (expt x 2))

なんでやねん！

【追記】Twitterでの反応

Twitterでいろいろ教えていただいた．

F#

[for x in 0..10 -> x*x]

F#を僕は使ったことがないのだが，このような書き方ができるそうだ．

ちなみに僕が自乗をするのに掛け算ではなく冪乗関数を使っているのは，そちらのほうがより汎用的な演算だから．僕も科学計算をするときは高速に演算できる方を選ぶ．

Scheme/SRFI-42

(list-ec (: x 11) (expt x 2))

SchemeでもSRFI-42を使うとこんな書き方ができる．list-ecマクロを使ってもSchemeぽさが保たれているのは確かなので，こちらの例のほうが良かった気がする．

ご指摘感謝．

Common Lisp

「なんでやねん」の意味がよくわからないというつっこみ．

Common Lisp は設計思想が無いのが設計思想だと思えば，Haskellと同じように言語の設計思想にかなった表記と言える．

【追記2】Redditでの反応

RedditでShiroさんからコメントを頂いていた．

【追記3】Twitterでの反応

Common Lisp プログラマから．

こんなマクロを使うらしい．