Main interpreter loop needs to be a series of let-expressions

Shawn Hyam avatarShawn Hyam created an issue

Hope I can explain the issue properly here. Basically, for proper typechecking of recursive functions, we need to define global symbols using a let-expression to name them. Creating a name via set! won't work properly in the type inference module, because we aren't making use of let-polymorphism.

We need to resolve this top-level behavior and make (define ...) expand to different code. It's also a question whether we can/should use delimited continuations (shift/reset) for this purpose.

Comments (0)

  1. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.