In such a loop construct lambda-abstractions are evaluated repeatedly for the purpose of the side-effects they produce. A variable is modified in the repeated block used to determine, whether the iteration should be stopped. This is obviously imperative programming.
It is remarkable, that such a 'while'-construct can be defined in A++ as a lambda-abstraction. In most of the other programming languages such an attempt would be in vain.
It should be noted however that all the statements to be repeated are bound together by one `lambda'. This is necessary because `while' is defined as a lambda-abstraction expecting two arguments. One argument stands for the condition that controls whether another iteration should occur and the second variable stands for the block to be repeated. The possibility to define lambda-abstractions with a variable number of arguments is not implemented in A++ right now.