Make an RFC for the hole syntax
Nobody has claimed this yet.
- Dominant language
- Racket
- Stars
- 601
- Forks
- 74
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 5
Description
Holes (unfinished expression to be filled) are natural in programming. Interactive theorem prover users use holes to fill in proofs. HtDP has been using ... x ... to mean a hole where x is available. Etc. Other languages that have holes include (but not limited to): Pyret, which uses ...; Idris, which uses ?id.
The problem with ... x ... in HtDP is that it is not syntactically correct. That is, the program that contains this syntax fragment is not runnable even if the hole will not be evaluated.
I propose that we find a syntax for holes. Here are some design choices:
- The syntax: should it be a compound term (so that we can attach other terms inside it), or atomic, or both?
- If the hole can be a compound term, would stuff inside need to be syntactically correct?
- Where could the hole appear? Only expression positions? What about binding positions?
- What's the semantics of the hole? I think the only answer that makes sense is that it should error when evaluated at run-time, but others might disagree.
- How can DrRacket integrate with this feature?
Note that Racket already has Todo List by @david-christiansen, which is one potential solution to this issue. I hope that if this package is picked as a solution, it will be added to base, to both standardize this functionality and promote it.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the proposed syntax, placement, runtime semantics, and DrRacket integration questions in this issue. Compare the existing Racket Todo List package as the mentioned potential solution. Done would be a settled RFC specifying the hole syntax, allowed contexts, semantics, and integration direction.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100