[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

*Subject*: **Re: [xacml-comment] Public Comment**

*From*:**Polar Humenn <polar@syr.edu>***To*: Haruyuki.Kawabe@unisys.co.jp*Date*: Thu, 11 Nov 2004 10:05:50 -0500 (EST)

On Thu, 11 Nov 2004 comment-form@oasis-open.org wrote: > Comment from: Haruyuki.Kawabe@unisys.co.jp > > As specified in A.3.5 Logical functions, > there are special rules for evaluating > operands for And, Or and N-of. > Those 'special' functions could be specified as the first argument of higher-order functions although it is not meaningful in most case. > In this case, all arguments for a 'special' > function is evaluated before applying the function. Haruyuki-san, Having all the arguments evaluated "before applying the function", is merely an implementation choice, especially with the higher order functions. We stipulate AND, OR, and N-OF as "special" to call out the fact that there arguments need not be evaluated until they are needed (i.e. sometimes called "lazy evaluation"). This actually works for *ALL* functions, as the specification is declarative. A particular implementation may be extremely lazy in it evaluation. For instance, imagine a function F that takes three arguments, a boolean b and two integer expressions, A and B, (F b A B). The function F returns the "expression" of A (not the evaluation) if the first argument evaluates to True, otherwise it returns the "expression" of B (not its evaluation). The only thing that needs to get evaluated is "b". Now, evaluate the expression (F False (F b A B) 3). You will find out that the expression (F b A B) will not even be attempted to be evaluated. However, you will notice that if your implementation chooses to evaluate all the arguments, you will still get the same answer. (i.e. 3). Cheers, -Polar > If the XACML specification allows such a usage, it should be noticed. >

**References**:**Public Comment***From:*comment-form@oasis-open.org

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]