Skip to content
This repository has been archived by the owner on Jun 2, 2020. It is now read-only.

passcod/irmo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Irmo

Metagraph store.

Atoms

An Irmo atom has an ID, two endpoints, and some data.

On my whiteboard, I like to represent them like this:

<---------+--------->

That's actually a bad example, because atom's endpoints cannot be null, but bear with me.

Atoms are the Irmo core. There's nothing else. Literally nothing else. I call that nothing "the Irmo space" or "the void".

Patterns

Patterns are combinations or usages of atoms that serve a particular purpose, and a few are listed here so you don't have to figure them out yourself, and so you know their name, because coordinated communication is important.

Units

/----\
|    v
\----+----\
     ^    |
     \----/

A unit is a single atom which points to itself. This is the only way that a single atom can exist by itself in the Irmo void.

Linked lists

/----\     /----\
|    v     |    |
\----+---->+<---/
           |     /----\
           v     |    |
      /----+---->+<===x
      |    ^     |    |
      \----/     \----/

This is starting to get a bit confusing... Essentially, linked lists are constructed by atoms that have one endpoint pointing to themselves, and the other pointing to the next atom in the list. The last atom in a linked list is a unit.

Doubly linked list

/----\
|    v
\----+----\
     ^    v
     \----+----\
          ^    v
          \----+----\
               ^    |
               \----/

Now each atom in the doubly linked list points to the next atom in the list and to the previous one, except for the first and last atoms which have one endpoint each pointing to themselves.

About

Memory store

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages