○
Jump to navigation
Jump to search
○ (or circle) is an esolang that only accepts the characters ○, ◯, and °. Created by User:AnotherUser05.
Command | Description |
---|---|
○ |
Generates a random value between 0 to 255. |
◯ |
Increase a value by the value generated from the most recent ○ .
|
° |
Print the value. |
Examples
This prints a random value.
○◯°
This is not a "Hello World!" program.
○◯○◯○◯○◯○◯°○◯○◯○◯○◯○◯○◯○◯○◯○◯○◯○◯°○◯○◯○◯○◯○◯○◯○◯○◯°°○◯○◯○◯○◯°○◯○◯○◯○◯○◯○◯○◯○◯°
This prints 0.
°
Generates a 16-digit key, by User:Infinitehexagon
○◯°○◯○◯°○◯°○◯○◯°○◯°○◯○◯°○◯°○◯○◯°○◯°○◯○◯°○◯°○◯○◯°○◯°○◯○◯°○◯°○◯○◯°
Uses
This language is useless, cause it can't output any character.
So why did the author do this?!
Honesly, I have no idea.
Implementation
An attempted implementation in Common Lisp shall be produced below. Please note that Unicode support constitutes an implementation-dependent aspect in Common Lisp. The interpreter at hand has been developed and tested with Steel Bank Common Lisp (SBCL) version 1.1.4 as part of the Lisp Cabinet 0.3.5 bundle.
(defun interpret-○ (code &aux (register 0) (last-random-value 0)) "Interprets the piece of ○ source CODE and returns no value." (declare (type string code)) (declare (type (integer 0 *) register)) (declare (type (integer 0 255) last-random-value)) (setf *random-state* (make-random-state T)) (loop for token of-type character across code do (case token (#\○ (setf last-random-value (random 256))) (#\◯ (incf register last-random-value)) (#\° (format T "~d " register)) (otherwise NIL))) (values))