Perhaps using abstract names A, B, and C was unclear. The following is the rule that is commonly referred to as modus ponens: A → B A ----------- B However, modus ponens is just one of the names for this. I could also…
While naming the different derivation rules can be useful for guiding readers the names are not formally necessary. The rules A B ----- C and A B ----- (→c) C are logically equivalent, the latter just gives you a name…
Good question! Pyret does not translate to a class hierarchy. Pyret dynamically allows dot lookups on both objects and ADTs. In the type checker this means that an ADT permits dot lookup on any field that all variants…
Hi, I'm actually the person who wrote the static type checker. Essentially we get around the difficulties of mixing objects and ADTs by having very limited support for subtyping. This way we can still carry out…
You can use "!hn duckduckgo" that usually works better.
As the sibling comment mentions, Pyret was originally written in Racket. It's now self-hosted, and I'm working on rewriting the typechecker so if you want I can answer questions about that. The current development is…
How do you determine semantically equivalent code fragments? Is it a dynamic solution or a static solution?
Not quite though. I had a bug with Javascript where I was reading in a number and forgot to parse it to a float. I ended up doing an addition with that value, which later got used as a float again. So I had 1 + "10"…
It's more a one-way dataflow language.
Perhaps using abstract names A, B, and C was unclear. The following is the rule that is commonly referred to as modus ponens: A → B A ----------- B However, modus ponens is just one of the names for this. I could also…
While naming the different derivation rules can be useful for guiding readers the names are not formally necessary. The rules A B ----- C and A B ----- (→c) C are logically equivalent, the latter just gives you a name…
Good question! Pyret does not translate to a class hierarchy. Pyret dynamically allows dot lookups on both objects and ADTs. In the type checker this means that an ADT permits dot lookup on any field that all variants…
Hi, I'm actually the person who wrote the static type checker. Essentially we get around the difficulties of mixing objects and ADTs by having very limited support for subtyping. This way we can still carry out…
You can use "!hn duckduckgo" that usually works better.
As the sibling comment mentions, Pyret was originally written in Racket. It's now self-hosted, and I'm working on rewriting the typechecker so if you want I can answer questions about that. The current development is…
How do you determine semantically equivalent code fragments? Is it a dynamic solution or a static solution?
Not quite though. I had a bug with Javascript where I was reading in a number and forgot to parse it to a float. I ended up doing an addition with that value, which later got used as a float again. So I had 1 + "10"…
It's more a one-way dataflow language.