Skip to content

Repository files navigation

fumola

Fumola is an experimental programming language. We take inspiration from The Extended Adapton Recipe, including Demanded Computation Graphs extended with symbolic space and time.

Fumola integrates these ideas with an otherwise conventional language, with conventional data types. For those features, we take inspiration from Motoko, a language design we adopt for most "core language features" that operate orthogonality to incremental computing primitives (e.g., primitive values, records, variants, functions, and modules).

lazyMergeSort on 44 elements, as a Demanded Computation Graph (DCG).

The image above depicts the dynamic behavior of lazyMergeSort on 44 unsorted input elements, as a Demanded Computation Graph (DCG).

  • Input list of 44 elements are the green boxes in far left column.
  • Balanced "level tree" of 44 leaves is central, also green boxes, and constructed to the right of this input list.
  • The thunks that "do" things in the DCG are blue orbs, with different kinds of actions (put, force, get) drawn as graph edges coming out of each thunk orb doing that action.
  • To the right of this balanced tree, the sub-graph of merge thunks constructs the final sorted list, on demand. It extends from left to right, horizontally.
  • The tree root's stream of merge nodes (longest, central row of horizontal orbs) has the 44 elements in sorted order because we've demanded the full output.

Contributing

Contributions are welcome! Please check out the contributor guidelines for more information.

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages