Keenan Crane

Results 103 comments of Keenan Crane

Another pragmatic addition would be the qualifier ∄, i.e., "does not exist," which enables a Style programmer to define a block that is instantiated only in the absence of a...

A natural follow-up is then to provide a more complete first-order logic that provides, e.g., conjunctions and disjunctions. For instance, ``` -- if the graph has vertices but not edges,...

> If matching the same object twice is usually undesirable, are we sure we want that to be the default? The "principle of least" surprise would seem to dictate that...

Just wanted to send a message from the year 2021 (almost 2022…) that an `exists` keyword in Style would still be **super** helpful (along with the other things in this...

A baby version of this change would be to replace the syntax ``` where PredicateA(x); PredicateB(x); PredicateC(x) ``` with ``` where PredicateA(x) and PredicateB(x) and PredicateC(x) ``` In other words,...

Here's another example, from `examples/triangle-mesh-2d/triangle-mesh-2d.sty`. The goal is to draw a line for any edge shared by two triangles: ``` -- Draw a thin line for any edge shared by...

Note that one way to match on symmetric predicates would be to implement Boolean logic a la #775, and then expand a symmetric predicate into a collection of `or` statements....

I'm running into this issue again—seems to be quite common in real examples. Here's the specific use case this time around: I have a domain where there are `Vertices`, and...

Three comments: 1. My gut feeling is that we should really implement symmetric matching directly, rather than using a "kludge" like augmenting the Substance program. Because, as you say, there...