[ mona / prog / sol ]
C-s internal definitions
Internal definitions are now defined in terms of letrec*.
You are correct, I learned this from SICP, but the information is quite evidentially outdated.
If portability was the goal, the second example should have used let* and the third let.
The second is mutually recursive no? Also if this is syntactic sugar for letrec* wouldn't these be portable anyway? This is actually very valuable information.
Another example would be if you implemented strings as ropes then you could have mutations of strings which share space. I wasn't trying to argue that the unspecified behavior was left in for no reason, simply that it was present.