Giter Club home page Giter Club logo

Comments (4)

paulstansifer avatar paulstansifer commented on August 19, 2024

Hm, this one might be a little tricky. Should (e (e x ...) ...) also be accepted because it is transcribeable by duplicating the interior e for each x? I suppose so, and the case with a literal list is sort of the trivial case of that (just to check my understanding, you're looking for terms like (list (list a b c) (list x y z), right?). Maybe the solution is to only check names that get imported (eventually, this should be relaxed to allow (m1 x (e #:refers-to x) ...), once the system can handle that).

I'm worried that this error message is covering an implementation gap: the binding forms runtime has its own implementation of ...s, and it might be unable to deal with the case where a ...ed name "bottoms out" and needs to be duplicated. If that's so, it'll take a bit of work, but it shouldn't need a major overhaul.

from redex.

rfindler avatar rfindler commented on August 19, 2024

I'm not sure of that case, but certainly the current error message is incorrect because list is not a name. So for fixing this issue, maybe just taking the literals in the grammar into account?

from redex.

paulstansifer avatar paulstansifer commented on August 19, 2024

I think it might not be too much harder to be more generous (and might be easier, since it might require less plumbing). I think that (assuming the runtime handles ... correctly, which is reasonably likely), the rule can be: if x appears in a beta, it must be under exactly n ...s (it doesn't matter whether the ...s are part of the beta or not), where n is the smallest number of ...s that x appears under as a "normal" pattern part (because that's the "native" transcription depth).

from redex.

rfindler avatar rfindler commented on August 19, 2024

That rule is, I think, slightly more generous than the rule that term uses (term's implementation is inherited from syntax (which has been refactored into the datum library))

from redex.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.