реализовать интерфейс к хеш-таблицам

Issue #7 new
Denis Budyak repo owner created an issue

API доступа к хеш-таблицам. По сути это будут функции из CL + несколько функций из SWANK,

SWANK::HASH-TABLE-TO-ALIST (fbound)
SWANK/BACKEND:HASH-TABLE-WEAKNESS (fbound)
MAKE-WEAK-KEY-HASH-TABLE (fbound)
MAKE-WEAK-VALUE-HASH-TABLE (fbound)

Пока что типизацией ключей и значений не заморачиваемся.

monk:

По хэш таблицам.

В 1С всё примитивно: http://helpme1c.ru/tip-sootvetstvie-v-yazyke-1s-8-v-primerax

С точки зрения удобства нужны функции вроде hash-update, hash-get-or-insert. Посмотри
https://hackage.haskell.org/package/containers-0.4.2.0/docs/Data-Map.html#v:insertWith
https://hackage.haskell.org/package/containers-0.4.2.0/docs/Data-Map.html#v:insertLookupWithKey

Comments (3)

  1. Denis Budyak reporter

    (monk)
    Про хэши.
    Вместо указанных функций можно реализовать итераторы как в C++.

    Не знаю, что по идеологии ближе к Яру, но что-то одно должно быть.
    Код вида
    (multiple-value-bind (res present) (gethash key hash)
    (unless present
    (setf (gethash key hash) (setf res (make-new-value)))))

    неуклюже выглядит и дважды делает расчёт хэша.

  2. Denis Budyak reporter
    пусть С -- словарь = Создать-словарь() // у нас есть параметры-ключи
    С.значение(ключ) = 5
    

    Из инфраструктуры мне кажется, не хватает реализации точки.

  3. Log in to comment