Альтернативная реализация списка ключей TCL, который не нужно компилировать?

Мне нужно использовать списки с ключами с TCL, но у меня есть возможность копировать только код tcl на устройство.

По умолчанию используется TclX, но для этого требуется компиляция.

Существует ли какая-либо реализация функций списка ключей (keylset, keylget), которая доступна в виде «автономной» библиотеки (т.е. чистого tcl)?


person Abhinav    schedule 18.01.2010    source источник


Ответы (3)


Если вы посмотрите на эту вики-страницу о списках с ключами, где кто-то написал чистую версию tcl базовая функциональность списков с ключами. Я не читал подробно, чтобы увидеть, зависят ли они от dict или нет. Если это так, то где-то в вики есть реализация dict на чистом tcl.

person lvirden    schedule 21.01.2010
comment
Да, я понял это через 15 минут после публикации здесь :) В любом случае мне нужна была версия, совместимая с 8.3, которой, к сожалению, не было. - person Abhinav; 28.01.2010

да, в tcl 8.5 добавилась команда dict которая реализует хранилище словарей, например:

dict set d key1 val1
dict set d key2 val2

dict for {k v} $d {puts "$k = $v"}
person jspcal    schedule 18.01.2010
comment
Я ищу что-то совместимое с 8.3. Извините, что не указали это в вопросе. Нашли решение. - person Abhinav; 18.01.2010
comment
Если у вас есть время, возможно, стоит взять чистую реализацию списка с ключами Tcl и повторно реализовать ее, используя dicts вместо необработанных списков. Причина в том, что код dict (я полагаю) оптимизирован для нужного вам типа доступа и, вероятно, будет намного быстрее. - person RHSeeger; 18.01.2010

Решение найдено в конце самой этой вики-страницы!

person Abhinav    schedule 18.01.2010