On Mon, Mar 23, 2020 at 02:46:53PM -0400, George Neuner wrote: > On Mon, 23 Mar 2020 01:45:40 -0700 (PDT), Yongming Shen > <[email protected]> wrote: > > >Hi Matthew, > > > >Thank you for the quick reply! > > > >I tried the example you gave for my first question and it resulted in an > >error. > >I have the following as `module-that-defines-fib`: > > > > #lang racket > > (provide fib) > > (define fib "fib") > > > >And this is the error that I got (using Racket 7.6): > > > > ; application: not a procedure; > > ; expected a procedure that can be applied to arguments > > ; given: "fib" > > ; [,bt for context] > > > I've run into this problem before ... I don't recall the official > explanation, but my takeaway was that Racket does not permit you to > directly *export* a value - you have to export a function or macro > that produces the value.
That seems like an extremely arbitrary restriction. > > E.g., > #lang racket > (provide fib) > (define (fib) "fib") > > > >I think this is because `(define-values (x) ...)` expands `...` without the > >top-level-bind-scope, even when expand-context-to-parsed? is #t (according > >to expander/expand/top.rkt). Is this a bug? > >Related to your answer to my second question, `define-syntaxes` similarly > >does not add the top-level-bind-scope when expanding `...`. Does this mean > >that even for `define-syntaxes`, `...` won't use the top-level-bind-scope > >binding(s) after all? > > > >A little bit off-topic, in the definition of define-values (in > >expander/expand/top.rkt), there is `(define-match m s ...)`, but for > >define-syntaxes it is `(define-match m disarmed-s ...)`. Is this difference > >significant? Or does define-match not care whether `s` or `disarmed-s` is > >used? > > I don't know the internals so I can't evaluate your theory. > > > >Thanks, > >Yongming > > George > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/2l0i7flr0to9msl6sg165vptiec0qq26l7%404ax.com. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/20200323205726.ccibywrggjxqticl%40topoi.pooq.com.

