How to make a visual programing language like snap

OK, so if I have understood you correctly you are looking for how the code in the middle of page 43 translates to Snap! ?

untitled script pic (29)

untitled script pic (28)

And now, building from this code, you want to be able to use the "substitution model" and move to code of post 30 (which is the equivalent of the code at the bottom of SICP, page 43) ... is that correct?

Scheme is a predominantly functional language; I suppose all of SICP's examples may be coded as Snap! reporters (or predicates; a predicate is a special case of a reporter).
Scheme's lambda (SICP p. 83) is a Snap! ringed expression (reporter or predicate).
Scheme's let (p. 86) doesn't have an equivalent primitive in Snap! but you can either use:
untitled script pic (35), or

, or , depending on context and your preferences.
There may be some less obvious translations further down the SICP text, but you'll cross that bridge when you get there (or ask for help in this forum). Good luck for now!