Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Array of arrays

0 views
Skip to first unread message

Maxim Tyurin

unread,
Jun 7, 2007, 1:45:18 PM6/7/07
to
Hi!
Захотелось мне странного - создать массив, элементами которого будут
другие массивы. Такое возможно в tcl? Или я сильно странного хочу?
--

With Best Regards, Maxim Tyurin
JID: MrK...@jabber.pibhe.com

Sergey Bolshakov

unread,
Jun 8, 2007, 4:57:45 PM6/8/07
to
>>>>> "Maxim" == Maxim Tyurin <mrk...@bungarus.info> writes:

> Hi!
> Захотелось мне странного - создать массив, элементами которого будут
> другие массивы. Такое возможно в tcl? Или я сильно странного хочу?
> --

Странного.
Обычно делают старый фокус со сложносочинёнными ключами в массиве:
array set ar {subarr0,key1 foo subarr0,key2 bar subarr1,key3 baz}
array get ar subarr0,*
Сложные структуры проще сочинять с помощью keyed lists (Tclx)
либо dict; последний из коробки в tcl8.5 и отдельным
расширением к tcl8.4

--

Alexander Zubarev

unread,
Jun 9, 2007, 8:45:35 AM6/9/07
to
Sat Jun 09 2007 01:57, Sergey Bolshakov wrote to Maxim Tyurin:
SB> Сложные структуры проще сочинять с помощью keyed lists (Tclx)

Тем более, что он работает заметно шустрее на больших объемах, чем массив.

Maxim Tyurin

unread,
Jun 12, 2007, 12:00:24 PM6/12/07
to
Sergey Bolshakov writes:

Спасибо, посмотрю.
Пока сделал вложенными списками, когда нужно - получаю массив с пом-ю
set array.

Скорость не важна - в этом массиве от силы 20 элементов бывает.

Kirill Frolov

unread,
Jun 26, 2007, 5:31:20 AM6/26/07
to
Thu Jun 07 2007 22:45, Maxim Tyurin wrote to All:

MT> From: Maxim Tyurin <mrk...@bungarus.info>

MT> Hi!
MT> Захотелось мне странного - создать массив, элементами которого будут
MT> другие массивы. Такое возможно в tcl? Или я сильно странного хочу?
MT> --

MT> With Best Regards, Maxim Tyurin
MT> JID: MrK...@jabber.pibhe.com
MT>

Kirill Frolov

unread,
Jun 26, 2007, 6:22:35 AM6/26/07
to
Thu Jun 07 2007 22:45, Maxim Tyurin wrote to All:
MT> Захотелось мне странного - создать массив, элементами которого будут
MT> другие массивы. Такое возможно в tcl? Или я сильно странного хочу?
Странного для tcl<=8.4. Массив (хеш, словарь) не очень вписывается в
парадигму "всё есть строка".
Его, например, в функцию не передать, только по ссылке, т.е. имени.

В tcl 8.5 появились словари как "first class" объекты -- они позволяют в
т.ч. и вложенность.

0 new messages