In this post:
- My feelings on the last week.
- How well I followed the plan.
- Musings on how to make the code better.
Last week was very finely divided between "hooray, I made good progress on the prototype and tried it out" and "how do I document this? How?!"
I didn't have an overarching plan beyond "get it done" and I just kind of filled things in from day to day, changing things around as I saw fit. Process-wise, this has some issues, but I'm okay with the results this time.
The code has lots of bits that could be factored out into their own modules to make the main module shorter, but what I'm really feeling stuck on right now is how to document the higher-order functions I've written. Like, I don't see a nice way to express "and the rest of the arguments are passed into the function which was this argument" or "this function returns whatever the function that was passed into it returns". I also have yet to notice how to document functables, which is annoying because I'm hitting them hard this time. I'm going to have to accept that I can't make the documentation much better without figuring out custom templates, because I'm seeing all sorts of potential ergonomic pitfalls in the code I wrote, that can only be handled by getting actual experience with this stuff.
Update: by complaining about this enough, I figured out how to get a good-enough support for types related to higher-order functions. The result is kind of horrifyingly dense because I can't use spaces, but it seems to make things more obvious than cross-references like I was doing. I still haven't worked out functables, but I've got a way forward on the other stuff, so that feels good. (For functables, maybe just... put them next to each other in the doc? LDoc is weird.)
Once I'm happy with the documentation, I need to start writing tests.
Next week, dunno yet.