Tiny Programs
Learning a new language can be hard. Developers go to "Hello World" but this is so trivial a program so as to be almost useless.
This project is a collection of tiny programs that may help you learn a language. It is similar to Rosetta Code except that all programs here will be implementations and not library calls.
Programs
- Brainfuck: A complete Brainfuck implementation
- Lisp: A tree-walking s-expression interpreter capable of running a fibonacci function
- Potential:
- JQ: A tiny JQ clone
- UUID: A UUIDv4 generator
- HTTP: An HTTP server from UNIX sockets
- RBTree: A red-black tree
Contributing an implementation
A few rules:
- Keep it simple.
- Do not copy any existing code. Write the program from scratch. See rule 1.
- Use existing implementations in this project as guidelines. Use the same or similar algorithms and data structures. See rule 1.
- Avoid programming patterns and object-oriented design and functional programming for the sake of patterns and OOP and FP. See rule 1.
- Avoid unnecessarily complex syntax, even if the complex syntax is more idiomatic in the language. See rule 1.
- Copy program.yaml and implement the
prepare
andrun
settings so that your implementation is automatically tested in Github Actions.
Ultimately, Phil is the BDFL and reserves the right to be picky. :)
Call for languages
- Ada
- FreePascal
- FreeBASIC
- R
- Octave
- Common Lisp
- Swift
- Kotlin
- Scala
- Clojure
- Lua
- C++
- D
- Standard ML
- OCaml