Hi Pierre-François, > Hello Manuel, > > > I don't really know if this behavior is wanted or not: > > If I define a function: > > (define (test begin end) > (print begin end) > ) > > It Both can be loaded and compiled. > But at the execution I get: > > *** ERROR:eval: > Type "procedure" expected, "bint" provided -- 1 > > 1. test, stdin@574 > > I can understand that the "begin" can be a protected keyword, but I feel > strange that the compilation works ... > > Hence if I declare: > (define (test end) > (let ((begin 2)) > (print begin end) > )) > > It function works. > So it seems that we can use begin has a variable name (but not always ^^ ...) I guess the problem is coming from the non-hygienic macro expansion Bigloo uses to implement many special forms. I agree that it might be difficult for users to anticipate the problems but I don't think it would be possible to modify Bigloo for solving this problem.
-- Manuel
