# Tampiorama A showcase for [Tampio](https://github.com/fergusq/tampio), a natural-language object-oriented programming language that uses Finnish grammar and compiles to JavaScript. Tampiorama provides working, annotated examples and documentation to help you explore Tampio without wrestling with its native dependencies. ## Quickstart (Docker) The easiest way to try Tampio, no manual `libvoikko` setup required: ```sh docker compose run --rm tampio ``` This drops you into a shell with `tampio` available. Compile an example to HTML: ```sh tampio -i -p examples/basics/hello.itp > examples/basics/hello.html ``` Then serve it locally and open it in your browser: ```sh python3 -m http.server 9994 --directory examples/basics ``` | URL | What it does | |-----|-------------| | `http://localhost:9994/hello.html` | Alerts "Hei maailma!" on load | | `http://localhost:9994/factorial.html` | Prompts for n, displays n! | | `http://localhost:9994/fibonacci.html` | Prompts for n, displays fib(n) | ## What is Tampio? Tampio programs read like Finnish sentences. Methods are defined using grammatical cases, so the language's syntax is shaped by natural-language morphology rather than punctuation. ```tampio Pienen luvun kertoma on riippuen siitä, onko se pienempi tai yhtä suuri kuin yksi, joko yksi tai pieni luku kerrottuna pienen luvun edeltäjän kertomalla. ``` `pienen luvun kertoma` — "the factorial of a small number". The parameter `pieni luku` (small number) appears in genitive case before the method name, and the recursive call `pienen luvun edeltäjän kertomalla` reads as "by the factorial of the predecessor of the small number". See [`docs/cheatsheet.md`](docs/cheatsheet.md) for a map of Finnish grammatical cases to their roles in Tampio code, and [`docs/vs-javascript.md`](docs/vs-javascript.md) for side-by-side comparisons with JavaScript. ## Examples | Directory | Contents | |-----------|----------| | `examples/basics/` | Hello world, factorial, Fibonacci | | `examples/data-structures/` | Lists, maps | | `examples/strings/` | String manipulation | | `examples/async/` | Promise / async usage | | `examples/program/` | A small complete program | ## Local Setup (without Docker) See [`docs/install.md`](docs/install.md) for instructions on installing `libvoikko` and `tampio` natively. ## License MIT