По мотивам - http://programmingmindstream.blogspot.ru/2014/01/todo_24.html, и вопросам к данному посту.
Я думал - и понял - вопросы были правильные (особенно в "личке").
Решил разделить понятия ARRAY и ITERATABLE.
Зачем?
Чтобы массивы могли "остаться Mutable", а ITERATABLE - Immutable.
Чтобы - очередной раз "съэкономить на спичках".
Ну и чтобы "не путать "тёплое с мягким"".
При этом - ARRAY совместим с ITERATABLE, а ITERATABLE с ARRAY - НЕТ!
Пример:
Я думал - и понял - вопросы были правильные (особенно в "личке").
Решил разделить понятия 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 ) ] // - совместимо (потому, что массив копируется)
Комментариев нет:
Отправить комментарий