PTC and "SHOULD" vs "MUST"

Peter Michaux petermichaux at
Wed Jun 1 15:36:35 PDT 2011

I notice that in the proper tail calls wiki page that a compliant
interpreter "SHOULD implement a call in proper tail position as a
PTC." In order for a programmer to use proper tail calls for
arbitrarily deep recursion, the programmer needs a guarantee that the
interpreter will use proper tail calls. This would mean the "SHOULD"
needs to be a "MUST". Otherwise what does the proper tail calls
proposal gain the programmer?

For example, R5RS has much stronger language compared with "SHOULD"
about Scheme using proper tail calls.

"Implementations of Scheme are required to be properly tail recursive."

With that language the programmer using Scheme can then depend on that feature.


More information about the es-discuss mailing list