As a human there might not be a finite list of criteria for what makes a puzzle interesting. But if I give the model enough positive and negative examples, there's a chance (but not guarantee) it might pick up on some patterns.
As a human there might not be a finite list of criteria for what makes a puzzle interesting. But if I give the model enough positive and negative examples, there's a chance (but not guarantee) it might pick up on some patterns.
- minimize the # of constraints, since elegant puzzles have fewer moving parts
- maximize the search tree complexity, so mentally finding the solution feels hard
- minimize the # of constraints, since elegant puzzles have fewer moving parts
- maximize the search tree complexity, so mentally finding the solution feels hard
Teaching a computer to solve puzzles is straightforward once you have the algorithm down. But how do you make it generate puzzles that feel "human"?
Teaching a computer to solve puzzles is straightforward once you have the algorithm down. But how do you make it generate puzzles that feel "human"?
1. They're cheap - it's low risk if they're damaged
2. They don't have sensors detecting if they're in your ears or not. Most apps pause music if you take an AirPod out of your ear. Great for solo use, not for sharing
1. They're cheap - it's low risk if they're damaged
2. They don't have sensors detecting if they're in your ears or not. Most apps pause music if you take an AirPod out of your ear. Great for solo use, not for sharing
But there are times when it feels like they do, because software engineers often want to believe there's a best way to build software. And in practice, software robustness is a sliding scale.
But there are times when it feels like they do, because software engineers often want to believe there's a best way to build software. And in practice, software robustness is a sliding scale.
- When your language compiles to C, you get a really nice portability story.
- Macros can used to bridge the gap between functional and imperative syntaxes.
- One way to make your language more REPL-like is by letting macros run code to interact with the LSP server (see img)
- When your language compiles to C, you get a really nice portability story.
- Macros can used to bridge the gap between functional and imperative syntaxes.
- One way to make your language more REPL-like is by letting macros run code to interact with the LSP server (see img)
In practice, this rings true -- if I find some code that's purely manipulating data structures, that's where I try to extract it into a pure function.
In practice, this rings true -- if I find some code that's purely manipulating data structures, that's where I try to extract it into a pure function.