Certains langages, comme Erlang par exemple, offrent une notation compacte rappelant celle des mathématiques pour décrire des ensembles de valeurs. Cette notation déclarative est une compréhension; dans les langages fonctionnels, où les listes constituent un type fondamental, on parlera souvent de compréhensions de listes.
Il est possible de tracer une analogie directe entre la forme mathématisée des compréhensions et celle, un peu plus verbeuse, des requêtes SQL. En effet, pour paraphraser Kevlin Henney, pendant ACCU 2016 :
... où si nous découpons l'expression en parties :
...la première partie équivaut conceptuellement à un select dans une requête SQL... |
...la deuxième partie équivaut conceptuellement à un from dans une requête SQL, et... |
...la troisième partie équivaut conceptuellement à un where dans une requête SQL, et... |
Ceci explique l'intérêt des formes déclaratives comme LiNQ et ce qui lui ressemble.
Quelques liens pour enrichir le propos.