Raw Terminal IO in Scheme

Recently I’ve written about doing some fairly low-level operations in Scheme, specifically how to get the window size of a terminal where the program is running. This was part of a little project to write a simple terminal-based text editor in Scheme along the lines of the kilo editor by following a tutorial entitled “Build Your Own Text Editor”. Another part of that project that was surprisingly difficult to accomplish in Scheme was putting the terminal in “raw” mode.

Getting the Terminal Window Size using Scheme

Doing some experimenting with the Scheme programming language recently has been a lot of fun. It’s even simpler in most ways than Clojure. As part of that experimentation, I’ve been looking into implementing a simple, terminal-based text editor along the lines of kilo by following along with the tutorial series “Build Your Own Text Editor”. Working through those tutorials, one of the first things that smacks you in the face is just how low-level the C programming language is and how very different it feels when compared to Scheme or, really, any other Lisp variant.