Hey guys

In 22.3 Domain-Specific Languages: Configurations, the book introduces the 
following data example and data definitions for FSM configurations


(define 
<http://docs.racket-lang.org/htdp-langs/intermediate-lam.html#%28form._%28%28lib._lang%2Fhtdp-intermediate-lambda..rkt%29._define%29%29>
 xm0
  '(machine ((initial "red"))
     (action ((state "red") (next "green")))
     (action ((state "green") (next "yellow")))
     (action ((state "yellow") (next "red")))))

; An XMachine is a nested list of this shape:
;   `(machine ((initial ,FSM-State 
<https://www.htdp.org/2019-02-24/part_two.html#%28tech._fsm._state%29>)) [
List-of 
<https://www.htdp.org/2019-02-24/part_three.html#%28tech._sim-dd._list._of%29> 
X1T <https://www.htdp.org/2019-02-24/part_four.html#%28tech._x1t%29>])
; An X1T is a nested list of this shape:
;   `(action ((state ,FSM-State 
<https://www.htdp.org/2019-02-24/part_two.html#%28tech._fsm._state%29>) (
next ,FSM-State 
<https://www.htdp.org/2019-02-24/part_two.html#%28tech._fsm._state%29>)))
I do no understand the XMachine data definition properly. In the definition 
it appears that it would be a list with 3 elements:

1*. *'machine
2. `((initial ,FSM-State 
<https://www.htdp.org/2019-02-24/part_two.html#%28tech._fsm._state%29>))
3. [List-of 
<https://www.htdp.org/2019-02-24/part_three.html#%28tech._sim-dd._list._of%29> 
X1T <https://www.htdp.org/2019-02-24/part_four.html#%28tech._x1t%29>]

However, from the data example (and the fact that it is an Xexpr 
<https://www.htdp.org/2019-02-24/part_four.html#%28tech._xexpr%29>) I know 
that the intention is different and that it is a list of the form:

1. 'machine
2.  `((initial ,FSM-State 
<https://www.htdp.org/2019-02-24/part_two.html#%28tech._fsm._state%29>))
3. X1T <https://www.htdp.org/2019-02-24/part_four.html#%28tech._x1t%29>-1 
... 
X1T <https://www.htdp.org/2019-02-24/part_four.html#%28tech._x1t%29>-n

where is seems that [List-of 
<https://www.htdp.org/2019-02-24/part_three.html#%28tech._sim-dd._list._of%29> 
X1T <https://www.htdp.org/2019-02-24/part_four.html#%28tech._x1t%29>]is 
expanded and included in the list  ([List-of 
<https://www.htdp.org/2019-02-24/part_three.html#%28tech._sim-dd._list._of%29>
 X1T <https://www.htdp.org/2019-02-24/part_four.html#%28tech._x1t%29>] is 
consed 
onto)

Can you please explain how the given  `(machine ((initial ,FSM-State 
<https://www.htdp.org/2019-02-24/part_two.html#%28tech._fsm._state%29>)) [
List-of 
<https://www.htdp.org/2019-02-24/part_three.html#%28tech._sim-dd._list._of%29> 
X1T <https://www.htdp.org/2019-02-24/part_four.html#%28tech._x1t%29>]) 
translates 
to this?





-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/26d8c34b-8ca8-4525-847f-25ba5b6124fa%40googlegroups.com.

Reply via email to