Re: Some thoughts on the 'reveal' operator Bill Frantz (frantz@communities.com)
Fri, 24 Sep 1999 11:48:02 -0700

At 10:31 PM 9/23/1999 -0700, ping@lfw.org wrote:
>A keyword might still be more appropriate.
>
> define factorial(n) {
> reveal if (n <= 1) {
> reveal 1
> } else {
> reveal n * factorial(n-1)
> }
> }

I like this solution the best. I would like to figure out a way to only have to code reveal at the highest level, while still retaining the "explicit revelation only" feature. If we allow:

define factorial(n) {

        reveal if (n <= 1) {
            1
        } else {
            n * factorial(n-1)
        }

}

To mean reveal the value of the if expression, we are there. What kind of trouble does considering the if to be an expression with a value cause? What other problems does the introduction of this pattern cause? The Algol68 experience seems relevant here.