Comments (1)
On a related note, I think I have an idea about how to resolve the tension between hackworthltd/vonnegut#622 and hackworthltd/vonnegut#623. I want to write this down before I forget it, but I'm tired and not thinking straight, so I reserve the right to ask you all to ignore this later :)
hackworthltd/vonnegut#622 proposed to draw a line or arrow between eval detail buttons in the eval timeline, in order to indicate to the student where they are in the eval timeline. I objected to this and so instead we went with hackworthltd/vonnegut#623.
After trying out eval mode for some pretty long sequences, I think that we will definitely need the behavior described in this PR, where students can click around in the eval timeline and jump between steps. One problem with that is that it would mean that you'd need to double-click the same button in order to see the details. So we're aliasing multiple views onto the same button, as evidenced by the "one click to jump, two to see the transition" behavior described in this the original post of this PR.
I propose the following, instead: we should render each evaluation step as a roundrect button, and each reduction step as an arrow between the evaluation steps. Above each arrow, show the rule that was applied. (I will draw this up in Figma when I have time.)
Then, clicking on a roundrect will jump to that eval step, and clicking on any arrow will show its reduction details.
We could then do fun things with the step forward/backward buttons, like have 2 backwards buttons and 2 forwards buttons (e.g., ">" and ">>"). The "big step" button would just jump to the next/previous eval step. The "small step" button could possibly render the details right there in the main view: e.g., for λ reduction, first identify/outline the lambda, then the body, then the argument; and finally, shuffle the boxes around to show how the argument becomes the value of the let
. (The backwards small-step button could "un-reduce" and put things back where they started... I think?)
from primer-app.
Related Issues (20)
- Render type parameters as lambdas, and render typedefs more like term defs HOT 5
- Paned Tree UI
- Opt out of Storybook telemetry HOT 1
- Investigate Storybook alternatives HOT 2
- Investigate `buildNodeModules`
- Investigate Tailwind Catalyst
- Documentation site
- Update docs re: Cachix
- Change "rename this type variable" (etc.) text
- Look into whether names should be drawn closer to their binders HOT 1
- `[email protected]` breaks edit mode HOT 4
- Upgrade to eslint 9
- Look into Effect-TS
- “Vendor” what we need from `tidy` HOT 1
- Make use of `using` declarations in our vendored `tidy` HOT 1
- Vendored `tidy` cleanups
- Orval and Zod
- Look for Tailwind optimizations
- Investigate Guidepup
- Investigate `pnpm.fetchDeps`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from primer-app.