понедельник, 27 января 2014 г.

Решил РАЗДЕЛИТЬ понятия ARRAY и ITERATABLE

По мотивам - http://programmingmindstream.blogspot.ru/2014/01/todo_24.html, и вопросам к данному посту.

Я думал - и понял - вопросы были правильные (особенно в "личке").

Решил разделить понятия ARRAY и ITERATABLE.

Зачем?

Чтобы массивы могли "остаться Mutable", а ITERATABLE - Immutable.

Чтобы - очередной раз "съэкономить на спичках".

Ну и чтобы "не путать "тёплое с мягким"".

При этом - ARRAY совместим с ITERATABLE, а ITERATABLE с ARRAY - НЕТ!

Пример:

ARRAY VAR A = [ 1 2 3 4 5 ]
// - совместимо
ARRAY VAR A = ( 1 2 3 4 5 )
// - НЕ СОВМЕСТИМО

ITERATABLE VAR A = [ 1 2 3 4 5 ]
// - совместимо
ITERATABLE VAR A = ( 1 2 3 4 5 )
// - совместимо

ITERATABLE VAR A = revert [ 1 2 3 4 5 ]
// - совместимо
ARRAY VAR A = revert [ 1 2 3 4 5 ]
// - НЕ СОВМЕСТИМО
ARRAY VAR A = [ FOR revert [ 1 2 3 4 5 ] ( IN anItem anItem ) ]
// - совместимо (потому, что массив копируется, через "обратный итератор")
ARRAY VAR A = [ ( 1 2 3 4 5 ) ]
// - совместимо (потому, что массив копируется)
ARRAY VAR A = [ FOR ( 1 2 3 4 5 ) ( IN anItem anItem ) ]
// - совместимо (потому, что массив копируется)

ARRAY VAR A = MAP INTEGER ( INTEGER IN anItem Result := anItem + 1 ) [ 1 2 3 4 5 ]
// - НЕ СОВМЕСТИМО
ITERATABLE VAR A = MAP INTEGER ( INTEGER IN anItem Result := anItem + 1 ) [ 1 2 3 4 5 ]
// - совместимо
ARRAY VAR A = [ FOR MAP INTEGER ( INTEGER IN anItem Result := anItem + 1 ) [ 1 2 3 4 5 ] ( IN anItem anItem ) ]
// - совместимо (потому, что массив копируется)

Комментариев нет:

Отправить комментарий