В Caché есть несколько различных способов пройтись по коллекции и выполнить какие-нибудь действия с ее элементами. Самым простым является while-цикл. Такой способ позволяет решить поставленную задачу в императивном стиле. Разработчику приходиться явно заботиться об итераторе, о переходе к следующему элементу и о проверке выхода за пределы коллекции. Но разве это то, о чем должен заботиться разработчик?! Разработчик должен решать поставленную перед ним задачу, за максимально короткое время с максимально хорошим качеством кода. Было бы очень здорово просто взять коллекцию и применить к ней функцию, которая выполняет необходимые действия на каждом элементе этой коллекции. Не проверять границ, не создавать итератор, не вызывать вручную функцию на каждом элементе. Такой способ решения задач называется [декларативным программированием][1].
> Declarative programming is when you write your code in such a way that it describes
>
> **what you want to do**
>
> , and
>
> **not how you want to do**
>
> it.
>
>
([c][2]) [1800-information][3] Давайте подумаем, как же решить поставленную задачу декларативно, используя средства и возможности Caché. [Читать дальше →][4]
[1]:
http://en.wikipedia.org/wiki/Declarative_programming
[2]:
http://stackoverflow.com/questions/129628/what-is-declarative-programming
[3]:
http://stackoverflow.com/users/3146/1800-information
[4]:
http://habrahabr.ru/post/212671/#habracut