Назначьте несколько локальных переменных по имени - PullRequest
0 голосов
/ 04 января 2019

Как я могу назначить несколько локальных переменных по именам?

Например, внутри лямбды что-то вроде этого:

{
 @[;:;] (.') flip (`a`b;4 2);
 (a;b)
 }[] / should return 4 2

Но, очевидно, не работает, потому что

q)@[`a;:;4]                                                                                   
'type

Кроме того,

q):[`a`b;4 2]
'assign

и использование set:

q)set'[`a`b;4 2]

назначает global , а не локальную среду.

1 Ответ

0 голосов
/ 04 января 2019

Полагаю, у вас возникнут трудности с сохранением локальных переменных таким образом без хакерского решения, и, не зная причины, по которой он должен быть локальным, сложно найти решение, которое могло бы помочь.Однако вот несколько советов:

  1. , если вам просто не нужны глобальные переменные в конце выполнения, вы можете сохранить их как глобальные и удалить их перед выходом из
  2. , если вы неЕсли существующие глобальные переменные не будут перезаписаны, тогда я предлагаю сохранить эти переменные в локальном словаре вместо ключей с именами переменных.например.(!). (`a`b;4 2)

Вы можете получить доступ к локальным переменным, используя

q){c:3;?[(`$())!();();0b;`c]}[]
3

, но проблема здесь заключается в присвоении значений локальным переменным.

...