You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Instantly share code, notes, and snippets.
Ross Angle
rocketnia
A programming language designer, working on @era-platform and the @lathe libraries to support it.
Using the Rieger-Nishimura lattice as a decision procedure failure result
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Defining a key-function-based equality interface over the top of `gen:equal+hash`.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Hygiene for a curried macro: A failing test that a Racket macro (M1) generated by a macro (M2) can bind a variable passed to M1.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
An example of using compound expressions for readability of code-generating code.
I find compound unquoted expressions to be pretty good for the readability of a code generator. I think this is a good example (from the current version of html-render.rkt):
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
A lazy merge sort of Racket streams, potentially useful for Rebellion
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Stream fusion infrastructure for Racket for discussion with Jack Firth.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Given a "contribute function" and "contribute argument" based open-world-assumption extension framework, and given the ability to define the same thing more than once if specifying a dex at the same time, it's possible to define transitive closure relations where the entries are contributed as arguments: Contribute a function, have it contribute another function each time it gets an argument, and have that function contribute an argument if the two arguments imply something.
(Rather than just specifying a dex with each definition, we could specify something less general than a merge but more general than a (merge-by-dex ...). Not only would it be idempotent like a merge, but it would also ensure that the result was "backwards compatible" with both inputs -- behaving exactly alike in all non-error cases, and exhibiting no more errors than