Первый подход определяет общий словарь, значения которого являются общим списком, что означает, что он может хранить значения любого типа. Это также используется при определении таблиц, поскольку таблицы могут хранить столбцы разных типов.
Во втором подходе, когда вы вставляете первое значение в словарь, он устанавливает тип списка значений словаря для этого типа элемента. Так что теперь это простой список.
q) d2: ()!()
q) d2[`t1]:2017.01.01
q) type value d2 / 14h
Это означает, что теперь значения словаря не могут быть общим списком и могут хранить в нем только элементы типа даты.
Чтобы создать общий словарь (в котором хранится общий список в качестве значений), введите значение первой записи как ноль (: :). Это то, что используется словарями пространства имен.
q) d2: ()!()
q) d2[`]:(::)
Теперь он может хранить любое значение.
q) d2[`t2]:2018.01.01
q) d2[`idx]:42