Codossa

From Esolang
Jump to navigation Jump to search

Codossa is an esoteric programming language inspired by the linguistic experiment Viossa. It is an experiment for us to try to teach a programming language by writing programs with their expected inputs and outputs, without relying on natural language or other programming languages. Its aim is to be a functional, Turing-complete programming language.

Feel free to add any commands you desire, but please try to follow these rules:

  • Please stick to the format:
   program
   input (if required) -> output
  • Please make the instructions implementable and avoid adding commands with implementation-defined/UB cases.
  • Commands should be fairly simple to understand. Try not to have any arbitrary edge cases such as "read a character from input, then store it, unless it is 'e', then do nothing".

Other than that, have fun!

Commands

>, <, i, d, o

   io
   -> 1
   iiiododododo
   -> 3 2 1 0 -1
   iiioiio
   -> 3 5
   iiio>oiiio<o
   -> 3 0 3 3
   i>d>i>do<o<o<o
   -> -1 1 -1 1

^, v

   ii^>vo
   -> 2
   iii^dddovo
   -> 0 3
   iii^ii^iovovo
   -> 6 5 3
   vo
   -> 0

z

   iiiiiiizo
   -> 0
  
   iiiziio
   -> 2

+,-

   iiiii^z +++++o
   -> 25
   iiiii^z ----o
   -> -20

c

   iiii iiii^ ++++ ++++ + c
   -> H
   iiii iiiii^ ++++ ++++ + c
   -> Q

r

   ro
   3 -> 3
   72 -> 72
   752text -> 752
   text -> 0
   -> 0
   roro
   33 -> 33 0
   3 3 -> 3 3
   3, 3 -> 3 3
   3text3 -> 3 3
   r^zr+o
   2 3 -> 5
   12 34 -> 46
   50 -50 -> 0

n, (, )

   rnz(io)
   1 -> 1
   2 -> 1 2
   3 -> 1 2 3
   0 ->
   -1 ->
   rn>r^z(+)o
   2 3 -> 6
   8 9 -> 72
   12 34 -> 408
   rnz(in(o))
   1 -> 1
   2 -> 1 2 2
   3 -> 1 2 2 3 3 3
   rnz(rnz>(i)<)>o
   1 1 -> 1
   2 3 4 -> 7
   5 10 20 30 40 50 -> 150