---
title: "L-systems generate weevils, pizza toppings, and matriarchal lineages"
slug: l-systems-generate-weevils-pizza-toppings-and-matriarchal-lineages
url: https://listedarticles.com/articles/l-systems-generate-weevils-pizza-toppings-and-matriarchal-lineages
canonical_url: https://blog.plover.com/misc/fibonacci-word-2.html
content_type: essay
language: en
published_at: 2026-09-25T00:00:00.000Z
updated_at: 2026-10-04T20:13:56.652Z
author: "Mark Jason Dominus"
authored_by: human
publisher: "blog.plover.com"
publisher_url: https://blog.plover.com/
topics: ["Mathematics", "Programming", "Essays", "Research"]
license: all-rights-reserved
word_count: 360
reading_minutes: 2
citation: "Mark Jason Dominus, blog.plover.com. \"L-systems generate weevils, pizza toppings, and matriarchal lineages.\" 25 Sept 2026. https://blog.plover.com/misc/fibonacci-word-2.html (all-rights-reserved)"
# The full text follows. The web page shows an extract and sends readers
# to the source above; quote the citation and link the canonical URL.
---

# L-systems generate weevils, pizza toppings, and matriarchal lineages

> Mark Jason Dominus explores Fibonacci words and L-systems—how the same rewrite rules generate rabbit genealogies, weevil patterns, pizza toppings, and matriarchal lineages.

Fri, 25 Sep 2026

L-systems generate weevils, pizza toppings, and matriarchal lineages


The Fibonacci sequence is so-called because in Western mathematics is
first appears in connection with a problem from Fibonacci's 1202 book
*Liber Abaci*. Fibonacci asks us to consider a rabbit farm where a
pair of baby rabits grows to adulthood in one month, and an adult pair
of rabbits gives birth to a new pair of babies after a month.
Representing an adult pair with `a` and a baby pair with `b`, we could
write this as:

```
    b → a
    a → ab
```
Starting with one pair of baby rabbits, and performing the indicated substitutions month by month, we get:

```
    b
    a
    ab
    aba
    abaab
    abaababa
    abaababaabaab
    abaababaabaababaababa
    abaababaabaababaababaabaababaabaab
    abaababaabaababaababaabaababaabaababaababaabaababaababa
    …
```
The total number of symbols (and pairs of rabbits) each month gives us
the Fibonacci sequence, as does the total number of `a`s, or the total
number of `b`s, in each line.

A structure like this one, in which there are symbols, in this case
`a` and `b`, that are repeatedly replaced with strings of symbols, is
called an “L-system”, and this L-system in particular is the “Fibonacci L-system”.

Yesterday I happened to mention *Zyzzyva*, which is a genus
of weevils that I can only assume was named by a biologist who wanted
to be last in the dictionary.  When I see a pattern like this I
instantly think of the Fibonacci L-system.  We can use the Fibonacci L-system to generate a sequence
of increasingly long weevil names:

```
    Yva
    Zva
    Zyva
    Zyzva
    Zyzzyva
    Zyzzyzyzva
    Zyzzyzyzzyzzyva
    Zyzzyzyzzyzzyzyzzyzyzva
    Zyzzyzyzzyzzyzyzzyzyzzyzzyzyzzyzzyva
    Zyzzyzyzzyzzyzyzzyzyzzyzzyzyzzyzzyzyzzyzyzzyzzyzyzzyzyzva
```
Or pizza toppings:

```
    eroni
    proni
    peroni
    peproni
    pepperoni
    peppepeproni
    peppepeppepperoni
    peppepeppeppepeppepeproni
    peppepeppeppepeppepeppeppepeppepperoni
    peppepeppeppepeppepeppeppepeppeppepeppepeppeppepeppepeproni
```
Or family matriarchs:

```
    Grandma
    Grandmam
    Grandmamma
    Grandmammamam
    Grandmammamammamma
    Grandmammamammammamammamam
    Grandmammamammammamammamammammamammamma
    Grandmammamammammamammamammammamammammamammamammammamammamam
```
I had to cheat a little here because there's an `a` in the middle that
I didn't substitute.  If we don't skip that we get the unpronounceable 
“Grmammandmammamammamma”.

A quick computer search suggests several other variations, including both “mammaries” and “titties”, but to prevent this article from devolving into juvenile sniggering, I'm going to cut the scroll here.

Amazingly, there was a previous article on a closely related topic.

*[Other articles in category /misc] 
permanent link*
