func walkArray(ctx expr.EvalContext, node *expr.ArrayNode, depth int) (value.Value, bool) {

	vals := make([]value.Value, len(node.Args))

	for i := 0; i < len(node.Args); i++ {
		v, _ := Eval(ctx, node.Args[i])
		vals[i] = v
	}

	// we are returning an array of evaluated nodes
	return value.NewSliceValues(vals), true
}
// walkArray Array evaluator:  evaluate multiple values into an array
//
//     (b,c,d)
//
walkArray Array evaluator:  evaluate multiple values into an array


// walkArray Array evaluator : evaluate multiple values into an array // // ( b c d ) //
func walkArray(ctx expr.EvalContext, node *expr.ArrayNode, depth int) (value.Value, bool) {
	vals := make([]value.Value, len(node.Args))
	for i := 0; i < len(node.Args); i++ {
		v, _ := Eval(ctx, node.Args[i])
		vals[i] = v
	}
	return value.NewSliceValues(vals), true
}
func walkArray ( ctx expr . EvalContext , node * expr . ArrayNode , depth int ) ( value . Value , bool ) { vals := make ( [ ] value . Value , len ( node . Args ) ) for i := 0 ; i < len ( node . Args ) ; i ++ { v , _ := Eval ( ctx , node . Args [ i ] ) vals [ i ] = v } return value . NewSliceValues ( vals ) , true }
walkArray Array evaluator:  evaluate multiple values into an array
walkArray Array evaluator : evaluate multiple values into an array
// we are returning an array of evaluated nodes