From: Bruno Haible <bruno@cl...> - 2004-03-24 19:07:32
> code_char(ch) = int_char(as_cint(ch))
> as_chart(as_cint(c)) = c
> as_cint(as_chart(i)) = i
> we have
> code_char(as_chart(x)) == int_char(x)
> why do we have code_char(as_chart()) all the time on stream.d?
I see three levels
top: Lisp object
When programming with characters, you stay at the topmost level as possible,
since it provides most safety.
The interface between top and mid is the code_char and char_code.
The interface between mid and low is as_chart and as_cint.
I don't like macros which go directly from low to top. It violates the
abstraction, and creates problems when the mid level needs to change.