Префиксная нотация для определения представления - PullRequest
0 голосов
/ 04 мая 2020

Я думал, что (почти) любая функция q может быть вызвана с префиксом и инфиксной нотацией взаимозаменяемо. Но потом я попробовал:

$ q
KDB+ 3.6 2019.04.02 Copyright (C) 1993-2019 Kx Systems
q)a:10
q)b::a
q)a:11
q)b
11
q)view `b
,"a"

выглядит хорошо, но для:

q)::[b;a]
q)a:12
q)b
11
q)view `b
'type
  [0]  view `b
       ^

что-то идет не так. Деревья разбора выглядят одинаково:

q)parse "b::a"
::
`b
`a
q)parse "::[b;a]"
::
`b
`a

Не могли бы вы мне помочь, пожалуйста, почему префиксная нотация для определения представления не в состоянии отклонить представление?

1 Ответ

2 голосов
/ 04 мая 2020

Виды особенные. Их определение должно начинаться с самого первого столбца:

q) a::b / not a view but an assignment with b undefined
'b
  [0]   a::b
           ^

q)a::b / a view
q)

И они не разбираются на -5!, см. Внизу этой страницы: https://code.kx.com/q/ref/parse/

...