>>
"SIGOURE" == SIGOURE Benoit <sigoure.benoit(a)lrde.epita.fr> writes:
I don't think you need these two:
+ EvalIf:
+ |[ d ? e1 : e2 ]| -> |[ e1 ]|
+ where <not(compare(real-eq))>(d, 0)
+
+ EvalIf:
+ |[ d ? e1 : e2 ]| -> |[ e2 ]|
+ where <compare(real-eq)>(d, 0)
+
Since
+ LitToBool:
+ |[ d ]| -> |[ false ]|
+ where <compare(real-eq)>(d, 0)
+
+ LitToBool:
+ |[ d ]| -> |[ true ]|
+ where <not(compare(real-eq))>(d, 0)
and
> ?MetaIf(condition, then-part, else-part)
> ///*DEBUG*/; say(!" @@@ eval-meta-if: starting:")
> ///*DEBUG*/; printf(|" condition = ", condition)
> - ; where(<prism-desugar> condition => condition-value)
> + ; where(<prism-desugar> condition
> + ; try(LitToBool) => condition-value)
> ///*DEBUG*/; printf(|" condition-value = ", condition-value)
> ; if !condition-value => True() then
> <eval-meta-code> then-part
Good point. Thanks!
--
SIGOURE Benoit aka Tsuna
_____
/EPITA\ Promo 2008.CSI Rock & tRoll