Introducing Roam’s delta function

The Roam Research team has the ambition to make the app people’s go-to tool for all types of knowledge work, included learning. In September 2020, the team quietly released the delta function to program the review of blocks in the future. While still rough around the edges, the delta function enables simple spaced repetition in Roam.

What is spaced repetition?

As the old saying goes: practice makes perfect. But how do we practice so we can master a topic? By practicing repeatedly. Spaced repetition is nothing more than testing yourself repeatedly on bits of knowledge. The crux is in spacing out these practice sessions in time.

The basics of the delta function

So what does the delta function have to do with spaced repetition? It’s Roam’s (first) implementation of scheduling blocks into the future, which is exactly what we need to do if we want to space out the review of knowledge. While it lacks a serious algorithm that spaces out blocks based on feedback, it does allow for simple scheduling on set intervals.

When you use the delta function on a block, it’ll resurface on your Daily Notes page on the scheduled date (measured in days in the delta shortcode). But, not the block itself resurfaces; a clone does. Whenever you use the delta function, it’ll create a copy of the block and place it on the Daily Notes page of the day it’s scheduled. On the original block, a reference is added:

Example of reference to a delta block

Clicking the reference leads you to the scheduled block:

Example of scheduled block with delta

Andy Henson explains well what exactly happens under the hood: “When you add the Δ shortcode {{[[Δ]]}} to a block and activate it, Roam does a few simple things under the hood. It duplicates the block in place and sends the original block forward to the specified point in time. It adds an #r/moved tag inside the shortcode brackets to the newly cloned block and adds an asterisk which is linked to the original block which has now be moved to the future date. Each time you click a delta button, Roam performs this teletransporter trick.”

How to use the delta function

By right-clicking on the bullet of a block and selecting the delta option, you directly create a copy and send it one day into the future:

Delta option in bullet context menu

If you prefer shortcuts, you can use Option-Enter (macOS)/Alt-Enter (Windows) to do the same as selecting the option from the context menu.

Alternatively, you can add the {{[[Δ]]}} shortcode to a block (you can use the keyboard combination Option-j (macOS) or Alt-9-1-6 (Windows) to type the delta symbol). Upon clicking the delta button, it’ll create a copy and send that copy a day into the future.

When you have a look at the shortcode that’s generated in the cloned block, you see two numbers after the colon:

Example of delta shortcode

The first number after the colon (1) tells the delta function to show this block one day from its creation date. The second number (2 in this case) is the number of days it will take the block to resurface again if you click the delta button again.

If you want to see the block in the same intervals, set the second number to 0 and the first number to the interval you wish. For example, if you want to see the block a week after clicking the delta button, set the shortcode to: {{[[Δ]]:7+0}}

See Andy’s and Lukas’s articles in the additional resources section below for more information on how to set the review days in the shortcode.

Use cases for the delta function

The fans of the delta function hail it for its potential to program attention. Instead of seeing the delta function as a simple algorithm to memorize things, most prefer it to revisit knowledge to act on it.

As Ian Tay writes, “part of fostering creativity is thinking about problems and ideas in different contexts. Some of this comes from the external environment, and some comes from the different conscious and unconscious mental states one might happen to be in. When you use Δ to send a block forward in time, you are in effect sending a series of linked ideas forward to your future self. Your future self then has the ability to contribute to this evolving strand of thought and send it forward in time again ad infinitum.”

As you create copies of blocks as you use the delta function repeatedly, you can trace the evolution of ideas over time. By using the delta function, you can pay attention to an idea in different context. The simple act of programming a block into the future is crucial if you want to reflect on ideas consistently.

Some people have tried to use the delta function for recurring tasks, but this has proved to be difficult.

Additional resources

Want to dig deeper into how to get most out of the delta function? Check out these written resources:

Programming your attention with Roam Research and Δ
Andy Henson looks at the delta function using the frame of programmable attention, which he defines as “directing your attention to things you want to do, learn or master at the right time without needing to expend effort to do so”.

Among the uses for the delta function that he discusses are:

  • Snoozing Tasks
  • Recurring Tasks
  • Unfinished Tasks
  • Note to my Next Day Self (NTNDS)
  • Future Reviews

A short (preliminary) guide to Spaced Repetition in Roam Research
Lukas Kawerau explains the basics of the delta function and shows how it can be used for spaced repetition.

Beyond Spaced Repetition: Δ in Roam Research
Ian Tay gives a quick overview of the delta function and explains how he likes to use it to program his attention and evolve ideas over time.

Was this helpful?