When working on the interface to notmuch I stumbled upon the case where iterating over messages and iterating over filenames produced the same code structure only changing the functions being used.
Manually creating the bindings for a sizable C program is a lot of work, also it is not very rewarding. I’m lazy and don’t want to do that. I looked around for what other options I have and I was surprised about the solution.
On the previous post I covered how I can call external programs as new processes and interact with their inputs or outputs. Here I will use directly the foreign libraries written in C using Guile’s foreign function interface.
Most of the pre-processing work of my emails was already solved with a combination of a bash script, which uses the notmuch cli and the python package afew. However, I’m learning Guile and I need a real task to solve to practice the language.
In my personal project to learn LISP, I decided to try GNU Guile. It is a Scheme implementation and it is the official extension language of the GNU project. To learn, my first step is to actually use it, and my first minimal toy project, will be a Habit tracker.