{
   "labels" : [],
   "code" : "// variables\r\n({ var aa = 3, bb = aa + 1, cc = 5;\r\n{ |d v|\r\n\td.inject((), { |a i k| a[i] = v[k] })\r\n}.(thisFunctionDef.varNames, this.getBackTrace.vars);\r\n}.())\r\n\r\n// arguments\r\n({ |aa=1 bb=3|\r\n{ |d v|\r\n\td.inject((), { |a i k| a[i] = v[k] })\r\n}.(thisFunctionDef.argNames, this.getBackTrace.args);\r\n}.())\r\n\r\n\r\n//both\r\n({ |c=3 r=#[3,1]| var aa = 3, bb = r;\r\n{ |trace|\r\n\t['arg','var'].inject((), { |a type|\r\n\t\tvar trace_vals = trace.perform((type++'s').asSymbol);\r\n\t\ta[type] = trace.functionDef.perform((type++'Names').asSymbol).inject(\r\n\t\t\t(), { |a i k| a[i] = trace_vals[k]}) });\r\n}.(this.getBackTrace);\r\n}.(r:[4,1]));",
   "is_private" : null,
   "id" : "1-50z",
   "name" : "function vars/args as dictionary",
   "author" : "vividsnow",
   "ancestor_list" : [],
   "description" : "shortcuts to get function variables/arguments state as dictionary"
}
