Subject: Re: bug#10250: Problems using optargs with function docstrings

From: Ian Price <[email-masked]>
Date: Thu, 08 Dec 2011 23:39:22 +0000

Peter TB Brett <[email-masked]> writes:

> (use-modules (ice-9 optargs))
> (define* (foo #:optional (bar "baz"))
> "Docs go here"
> (define (frob p) (display p) (newline))
> (frob bar))
> (foo)
>
> This generates an error:
>
> ERROR: In procedure memoization:
> ERROR: Bad define placement (define (frob p) (display p) (newline)).
>
> I'm not sure if this is a bug, but it looks like one to me. ;-)
I'd agree, if I could reproduce it

scheme@(guile−user)> (use-modules (ice-9 optargs))
(define* (foo #:optional (bar "baz"))
"Docs go here"
(define (frob p) (display p) (newline))
(frob bar))
(foo)
baz
scheme@(guile−user)> ,describe foo
Docs go here
scheme@(guile−user)> 

Which version are you using? I'm on current stable-2.0(e7b2efd)

-- 
Ian Price

"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"