"begin" has a variable name

"Ollagnon, Pierre-Francois" <[email protected]>
Newsgroups gmane.lisp.scheme.bigloo
Message-ID <AC02FE2989D7094784CAB7324190BFBF06773F42@EU-MBX-01.mgc.mentorg.com>
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 ^^ ...)


Regards,
Pierre
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.