Thanks a lot for your response.
I still have a couple of questions if you do not mind answering them.
First, only the expressions that return atomic values are placed on
top of the horizontal line.?.?
The if-exp on page 108.
exp1 returns the atomic values: #t, #f, so it is placed on top since
it can also modify the state the right hand side indicates that.
Is this reasoning correct?
Now the other two expressions may also modify the state but since they
do not "necessarily" return an atomic value, they return expressions
instead, the specification of those expressions is not specified (in
the antecedents section). They are however specified in a generic way
(value-of exp env state) under the horizontal line.
Is this reasoning correct?
So if we take the specifications for begin nothing would be present as
the antecedent since all expressions do not return atomic values.
Similarly for the list expression.
exp1 and exp2 in the diff-exp return numbers, similarly the setref
expressions which returns a location and null, both are present above
the line.
I am trying to deduce the rules for specifications from the examples
given, and this is the only pattern I have seen.
I would have thought that for the if-exp we would have three entries
above the line and look something like this:
(value-of exp1 rho sigma0) = (val1, sigma1)
(value-of exp2 rho sigma1) = v2 ;; v2 is a value-store pair
(value-of exp3 rho sigma1) = v3 ;; v3 is a value-store pair
___________________________________________________
Thanks again for all your time.
On Oct 18, 1:17 pm, Mitchell Wand <
w...@ccs.neu.edu> wrote:
> 2011/10/17 Scheme apprentice <
salal...@gmail.com>