Я пытаюсь программно создать аргументы для вызова functional select, имеющего форма:
?[ `t; () ; groupBy; ()]
Проблемной частью является groupBy
, который должен быть словарем.
Предположим, что цель состоит в том, чтобы получить дерево синтаксического анализа в виде:
parse "select by sym,month:`date$dt.month from t"
Я начинаю строить часть by
с:
groupBy: enlist[`sym]!enlist(`sym)
Затем я пытаюсь добавить month
часть группы оператором (обратите внимание, что периодичность параметризована):
per: `month / monthly periodicity
groupBy,: {enlist[x]!enlist[ $[x = `day;
`dt;
$[x=`month;
((parse "select by month:`date$dt.month from x")@3)@`month
;` sv (`dt,x)]
]]
}[per]
Однако это выдает ошибку type
. Что пойдет не так?
groupBy:groupBy,{...}
работает. Странно, как я думал, что они эквивалентны. Большое спасибо! Не могли бы вы скопировать это в ответ, и я приму его. - person Daniel Krizian   schedule 12.05.2015