Examine individual changes

Abuse Filter navigation (Home | Recent filter changes | Examine past edits | Abuse log)
Jump to navigation Jump to search

This page allows you to examine the variables generated by the Abuse Filter for an individual change.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
325
Name of the user account (user_name)
'RaiseAfloppaFan3925'
Age of the user account (user_age)
39773773
Page ID (page_id)
23829
Page namespace (page_namespace)
0
Page title (without namespace) (page_title)
'Dango'
Full page title (page_prefixedtitle)
'Dango'
Action (action)
'edit'
Edit summary/reason (summary)
'add standard library and big examples'
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
'<!---- I think I should give up --> {{WIP}} <b><i>please take any inconsistencies with an ocean's worth of salt.</i></b> {{ infobox proglang | name = Dango | paradigms = imperative | author = [[User:RaiseAfloppaFan3925]] | year = [[:Category:2025|2025]] | memsys = [[:Category:Stack-based|Stack-based]] | refimpl = [https://github.com/raiseAfloppaFan3925/dango-esolang <code>dango-esolang</code>] | files = <code>.dango</code>, <code>.🍡</code> }} Dango is an esolang by [[User:RaiseAfloppaFan3925]] that revolves around [https://en.wikipedia.org/wiki/Dango dango], a Japanese rice-based dumpling. == Code == Code in Dango are stored in dango (who could have guessed), where each instruction is wrapped in parentheses <code>()</code> (which will be referred to as "dumplings" for the rest of this article, for a lack of a better word) with the line ending with a stick <code>----</code>. == Operations == === "Dumpling" operations === <!-- lack of a better word --> {| class = "wikitable plainpres" width = "80%" ! Operation ! Example ! Action |- | <code>()</code> | <code>()----</code> | Null value. |- | <code>(')</code> | <code>(')(Hello, world!)----</code> | Stringify the last pushed value. |- | <code>('c)</code> | <code>('c)(10)----</code> | Create a Unicode character from the stack top as a code point. |- | <code>(j)</code> | <code>(j)(4)----</code> | Jumps to the line number of the stack top. |- | <code>(len)</code> | <code>(...)(while)(>)(2)(len)----</code> | If the stack top is a dango (the data structure), then the amount of dumplings on it is pushed to the stack. Otherwise, <code>0</code> is pushed. The value at the top is preserved, unlike with other instructions. |} === Function calls === In Dango, a function call is just the function name preceded by a colon (<code>:</code>) inside a dumpling, with the arguments being stored on the stack. Example: <pre> (:io-write)(')(stdout)(')(Hello, world!)---- </pre> Stack (before function call): <pre> top "stdout" "Hello, world!" bottom </pre> Since the dumplings are pushed to the stack and functions take off of the stack, the arguments to the function can be in separate dango as seen above. === Dango operations === These operations operate on the dango memory in the program. {| class = "wikitable plainpres" width = "80%" ! Operation ! Example ! Action |- | <code>eat</code> | <code>eat (')(Hello, world!)----</code>, <code>eat</code> | Pops the top of the stack and prints it. |- | <code>fetch</code> | <code>fetch 2</code> | Copies the value <code>N</code> slots down from the top of the stack and moves the copy to the top. |- | <code>remove</code> | <code>remove</code> | If the top of the stack is a dango, then it removes the value at the end and pushes it to the stack. Example: <pre> skewer 2 (1)(2)---- eat remove eat remove </pre> Stack (line 1): <pre> top (1)(2)---- (Dango) bottom </pre> Stack (line 2, before <code>eat</code>): <pre> top 1 (Int) (2)---- (Dango) bottom </pre> Stack (line 3, before <code>eat</code>): <pre> top 2 (Int) bottom </pre> |- | <code>skewer &lt;N&gt;</code> | <code>skewer 2 (1)(2)----</code> | Pops the top <code>N</code> values off of the stack and stores them in a dango that is pushed onto the stack, with the stack top being stored to the left and the value at <code>top_pos - N</code> being stored to the right. Example: <pre> eat skewer 3 (1)(2)(3)---- </pre> Output: <pre> (1)(2)(3)---- </pre> If the amount of values requested to be skewered is greater than 5, then an error occurs. Example: <pre> eat skewer 6 (1)(2)(3)---- skewer 2 (4)(4)---- (5)(6)---- </pre> Output: <pre> error: skewer is too short for 6 dumplings </pre> If the amount of values requested to be skewered is zero, then an error occurs. Example: <pre> skewer 0 </pre> Output: <pre> error: cannot have dango with zero dumplings, that's just a stick </pre> |} == Values == * Null/Nil - <code>()</code> * Integers - signed 64-bit integers with overflow and underflow * Floats - 64-bit (double-precision) IEEE floats * Strings - strings (created by the <code>(')</code> dumpling) * Raw text - strings, but with parentheses === Dango === The dango (not to be confused with the language and the code unit in the language) is a stack-like data structure. It is limited to a maximum of 5 values, but it can contain more dango. Dangos are constructed with the <code>skewer</code> keyword which constructs a dango out of the top N values. REPL Example: <pre> --(O)(O)(O) > eat skewer 3 (1)(2)(3)---- (1)(2)(3)---- () </pre> Here is what happens if a dango contains a dango. <pre> skewer 2 (4)(5)---- (1)(2)(3)---- skewer 4 eat </pre> Output: <pre> (1)(2)(3)[(4)(5)]---- </pre> Here is what happens if a dango is constructed with a length greater than 5. <pre> --(O)(O)(O) > eat skewer 6 (1)(2)(3)(4)(5)(6)---- Error: skewer is too short for 6 dumplings --(O)(O)(O) > </pre> == Example Programs == === Hello world === <pre> eat (')(Hello, world!)---- </pre> === Truth Machine === <pre> (j)(4)(while)(!=)(1)(:io-input)---- eat (1)---- (j)(2)---- eat (0)---- </pre> === Cat program === <Pre> eat (:io-input)---- </pre> [[Category:2025]] [[Category:Implemented]] [[Category:Thematic]] <!-- I guess... -->'
New page wikitext, after the edit (new_wikitext)
'<!---- I think I should give up --> {{WIP}} <b><i>please take any inconsistencies with an ocean's worth of salt.</i></b> {{ infobox proglang | name = Dango | author = [[User:RaiseAfloppaFan3925]] | year = [[:Category:2025|2025]] | memsys = [[:Category:Stack-based|Stack-based]] | class = [[Linear bounded automaton|likely Linear-bounded automaton]] | refimpl = [https://github.com/raiseAfloppaFan3925/dango <code>dango</code>] | files = <code>.dango</code>, <code>.🍡</code> }} Dango is an esolang by [[User:RaiseAfloppaFan3925]] that revolves around [https://en.wikipedia.org/wiki/Dango dango], a Japanese rice-based dumpling. == Code == Code in Dango are stored in dango (who could have guessed), where each instruction is wrapped in parentheses <code>()</code> (which will be referred to as "dumplings" for the rest of this article, for a lack of a better word) with the line ending with a stick <code>----</code>. == Operations == === "Dumpling" operations === <!-- lack of a better word --> {| class = "wikitable plainpres" width = "80%" ! Operation ! Example ! Action |- | <code>()</code> | <code>()----</code> | Null value. |- | <code>(')</code> | <code>(')(Hello, world!)----</code> | Stringify the last pushed value. |- | <code>('c)</code> | <code>('c)(10)----</code> | Create a Unicode character from the stack top as a code point. |- | <code>(j)</code> | <code>(j)(4)----</code> | Jumps to the line number of the stack top. |- | <code>(`)</code> | <code>(`)(')(1234)----</code> | Converts a value to an integer, returns <code>()</code> if the conversion failed. |- | <code>(;)</code> | <code>(;)(')(0.401)----</code> | Converts a value to a float, returns <code>()</code> if the conversion failed. |- | <code>(len)</code> | <code>(...)(while)(>)(2)(len)----</code> | If the stack top is a dango (the data structure), then the amount of dumplings on it is pushed to the stack. Otherwise, <code>0</code> is pushed. The value at the top is preserved, unlike with other instructions. |} === Function calls === In Dango, a function call is just the function name preceded by a colon (<code>:</code>) inside a dumpling, with the arguments being stored on the stack. Example: <pre> (:io-write)(')(stdout)(')(Hello, world!)---- </pre> Stack (before function call): <pre> top "stdout" "Hello, world!" bottom </pre> Since the dumplings are pushed to the stack and functions take off of the stack, the arguments to the function can be in separate dango as seen above. === Dango operations === These operations operate on the dango memory in the program. {| class = "wikitable plainpres" width = "80%" ! Operation ! Example ! Action |- | <code>eat</code> | <code>eat (')(Hello, world!)----</code>, <code>eat</code> | Pops the top of the stack and prints it. |- | <code>fetch</code> | <code>fetch 2</code> | Copies the value <code>N</code> slots down from the top of the stack and moves the copy to the top. |- | <code>remove</code> | <code>remove</code> | If the top of the stack is a dango, then it removes the value at the end and pushes it to the stack. Example: <pre> skewer 2 (1)(2)---- eat remove eat remove </pre> Stack (line 1): <pre> top (1)(2)---- (Dango) bottom </pre> Stack (line 2, before <code>eat</code>): <pre> top 1 (Int) (2)---- (Dango) bottom </pre> Stack (line 3, before <code>eat</code>): <pre> top 2 (Int) bottom </pre> |- | <code>skewer &lt;N&gt;</code> | <code>skewer 2 (1)(2)----</code> | Pops the top <code>N</code> values off of the stack and stores them in a dango that is pushed onto the stack, with the stack top being stored to the left and the value at <code>top_pos - N</code> being stored to the right. Example: <pre> eat skewer 3 (1)(2)(3)---- </pre> Output: <pre> (1)(2)(3)---- </pre> If the amount of values requested to be skewered is greater than 5, then an error occurs. Example: <pre> eat skewer 6 (1)(2)(3)---- skewer 2 (4)(4)---- (5)(6)---- </pre> Output: <pre> error: skewer is too short for 6 dumplings </pre> If the amount of values requested to be skewered is zero, then an error occurs. Example: <pre> skewer 0 </pre> Output: <pre> error: cannot have dango with zero dumplings, that's just a stick </pre> |} == Values == * Null/Nil - <code>()</code> * Integers - signed 64-bit integers with overflow and underflow * Floats - 64-bit (double-precision) IEEE floats * Strings - strings (created by the <code>(')</code> dumpling) * Raw text - strings, but with parentheses === Dango === The dango (not to be confused with the language and the code unit in the language) is a stack-like data structure. It is limited to a maximum of 5 values, but it can contain more dango. Dangos are constructed with the <code>skewer</code> keyword which constructs a dango out of the top N values. REPL Example: <pre> --(O)(O)(O) > eat skewer 3 (1)(2)(3)---- (1)(2)(3)---- () </pre> Here is what happens if a dango contains a dango. <pre> skewer 2 (4)(5)---- (1)(2)(3)---- skewer 4 eat </pre> Output: <pre> (1)(2)(3)[(4)(5)]---- </pre> Here is what happens if a dango is constructed with a length greater than 5. <pre> --(O)(O)(O) > eat skewer 6 (1)(2)(3)(4)(5)(6)---- Error: skewer is too short for 6 dumplings --(O)(O)(O) > </pre> == Standard Library == For some reason, Dango has a standard library. === I/O === * <code>:io-input</code> - can do either <code>(:io-input)(0)</code> which just takes in input, or <code>(:io-input)(1)----</code> where an extra prompt argument is needed * <code>:env-args</code> - returns the argument vector passed to Dango === Time === * <code>:chrono-now</code> - returns the number of seconds (with milliseconds) since the Unix epoch * <code>:chrono-sleep</code> - sleeps for the given amount of seconds (int and float supported) === Math === * <code>:math-cos</code> - returns the cosine of a number * <code>:math-e</code> - returns the value of Euler's number <math>e</math> (approx. 2.71828...) * <code>:math-pi</code> - returns the value of <math>\pi</math> (approx. 3.14159265358979...) * <code>:math-sin</code> - returns the sine of a number * <code>:math-sqrt</code> - returns the square root of a number * <code>:math-sqrt2</code> - returns the value of <math>\sqrt{2}</math> (approx. 1.41421...) * <code>:math-tan</code> - returns the tangent of a number == Embedding == Dango can be embedded by adding it as a dependency after downloading from source. <pre> use dango::dango_utils::{ self, dango_errors, dango::runtime::{ self, Value, Program } }; unsafe fn exec_code(&mut self) { do_stuff(); let mut program = dango_utils::compile_str(&amp;user_input_idk); match program { Ok(program) => { self.spawn_dango_thread(program); println!("{}", "what do I do"); } Err(errors) => unsafe { self.handle_err(errors) }, } do_more_stuff(); } </pre> == Example Programs == === Hello world === <pre> eat (')(Hello, world!)---- </pre> === Truth Machine === <pre> (j)(3)---- eat (0)(while)(=)(0)(:io-input)(0)---- (j)(2)---- eat (1)---- </pre> === Cat program === <pre> eat (:io-input)(0)---- </pre> === Truth machine === <pre> remove (I forgot to fix this program)---- (j)(5)(while)(=)(')(0)(:io-input)(0)---- eat (1)---- (j)(3)---- eat (0)---- </pre> === Fibonacci number (iterative) === <pre> (`)(1)---- remove (Our fibonacci number)---- fetch 0 fetch 0 remove (Fib[n], iterative fibonacci by the way)---- (j)(9)(while)(!=)(0)---- fetch 0 remove (if n == 0 -> 0)---- (j)(46)(0)---- (j)(9)(while)(!=)(1)---- fetch 0 remove (if n == 1 -> 1)---- (j)(46)(1)---- fetch 0 remove (let n = n)---- (0)---- remove (let x = 0)---- (1)---- remove (let y = 1)---- (1)---- remove (let i = 0)---- remove (while i < y)---- remove (top i y x n bottom )---- fetch 2 remove (x)---- remove (top x i y x n bottom )---- fetch 2 remove (y)---- remove (top y x i y x n bottom )---- (+)---- remove (let z = x + y)---- remove (top z i y x n bottom )---- fetch 4 remove (n = n)---- remove (top n z i y x n bottom )---- fetch 3 remove (x = y)---- remove (top x n z i y x n bottom )---- fetch 2 remove (y = z)---- remove (top y x n z i y x n bottom )---- fetch 4 (+)(1)---- remove (i = i + 1)---- remove (top i y x n z i y x n bottom )---- fetch 0 remove (get i)---- remove (top i i y x n z i y x n bottom )---- fetch 4 remove (get n)---- remove (top n i i y x n z i y x n bottom )---- (j)(13)(while)(<)---- remove (end while)---- remove (end)---- eat (')(F()---- eat eat ('c)(41)---- eat (')( = )---- eat eat ('c)(10)---- </pre> === [[User:RaiseAfloppaFan3925/Program forms#User-friendly_iterative_Fibonacci_program|User-friendly iterative Fibonacci (golfed)]] === <pre> (j)(11)(while)(=)(')(exit)---- fetch 0 fetch 0 (:io-input)(1)---- eat (')(Input a number: )---- (j)(1)---- eat eat eat eat (')('exit' to exit)('c)(10)(')('help' to see this)('c)(10)---- (while)(=)(')(help)---- (j)(1)---- eat eat (')(Invalid number. Try again.)('c)(10)---- (while)(=)()---- fetch 0 (`) (j)(1)---- eat eat (')(Cannot get a negative Fibonacci number. Try again.)('c)(10)(while)(<)(0)---- fetch 0 (j)(1)---- eat eat (')(Resulting value would be too large. Try again.)('c)(10)(while)(>)(92)---- fetch 0 (j)(10)(0)(while)(=)(0)---- fetch 0 (j)(10)(1)(while)(=)(1)---- fetch 0 (1)(1)(0)---- fetch 0 (j)(9)(while)(<)---- fetch 4 fetch 0 (+)(1)---- fetch 4 fetch 2 fetch 3 fetch 4 (+)---- fetch 2 fetch 2 (j)(1)---- eat ('c)(10)---- eat eat eat ('c)(41)(')( = )---- eat eat (')(F()---- </pre> === User-friendly sleep program === <pre> fetch 0 fetch 0 (:io-input)(1)(+)(')( )(+)('c)(58)(+)('c)(41)(')(Sleep for (seconds)---- (j)(12)(while)(=)(')(exit)---- (j)(1)---- eat eat eat eat eat eat (')('exit' to exit)('c)(10)(')('help' to show this)('c)(10)(')(this program takes in a number as input and sleeps for that amount of time)('c)(10)---- (while)(=)(')(help)---- (j)(1)---- remove remove eat eat (')(Invalid duration. Try again.)('c)(10)---- (while)(+)(<)(0)---- fetch 1 (=)()---- fetch 0 fetch 0 (;)---- (-)(:chrono-now)---- remove (:chrono-sleep)---- fetch 1 (:chrono-now)---- (-)---- fetch 1 (0)---- fetch 0 (-)---- fetch 3 eat (')( seconds (error of )---- eat fetch 0 eat (')(Slept for )---- eat eat ('c)(41)('c)(10)---- eat remove remove remove remove (j)(1)---- </pre> [[Category:2025]] [[Category:Implemented]] [[Category:Thematic]] <!-- I guess... -->'
Unified diff of changes made by edit (edit_diff)
'@@ -6,9 +6,9 @@ {{ infobox proglang | name = Dango -| paradigms = imperative | author = [[User:RaiseAfloppaFan3925]] | year = [[:Category:2025|2025]] | memsys = [[:Category:Stack-based|Stack-based]] -| refimpl = [https://github.com/raiseAfloppaFan3925/dango-esolang <code>dango-esolang</code>] +| class = [[Linear bounded automaton|likely Linear-bounded automaton]] +| refimpl = [https://github.com/raiseAfloppaFan3925/dango <code>dango</code>] | files = <code>.dango</code>, <code>.🍡</code> }} @@ -44,4 +44,12 @@ | <code>(j)(4)----</code> | Jumps to the line number of the stack top. +|- +| <code>(`)</code> +| <code>(`)(')(1234)----</code> +| Converts a value to an integer, returns <code>()</code> if the conversion failed. +|- +| <code>(;)</code> +| <code>(;)(')(0.401)----</code> +| Converts a value to a float, returns <code>()</code> if the conversion failed. |- | <code>(len)</code> @@ -189,4 +197,57 @@ Error: skewer is too short for 6 dumplings --(O)(O)(O) > +</pre> + +== Standard Library == + +For some reason, Dango has a standard library. + +=== I/O === + +* <code>:io-input</code> - can do either <code>(:io-input)(0)</code> which just takes in input, or <code>(:io-input)(1)----</code> where an extra prompt argument is needed +* <code>:env-args</code> - returns the argument vector passed to Dango + +=== Time === + +* <code>:chrono-now</code> - returns the number of seconds (with milliseconds) since the Unix epoch +* <code>:chrono-sleep</code> - sleeps for the given amount of seconds (int and float supported) + +=== Math === + +* <code>:math-cos</code> - returns the cosine of a number +* <code>:math-e</code> - returns the value of Euler's number <math>e</math> (approx. 2.71828...) +* <code>:math-pi</code> - returns the value of <math>\pi</math> (approx. 3.14159265358979...) +* <code>:math-sin</code> - returns the sine of a number +* <code>:math-sqrt</code> - returns the square root of a number +* <code>:math-sqrt2</code> - returns the value of <math>\sqrt{2}</math> (approx. 1.41421...) +* <code>:math-tan</code> - returns the tangent of a number + +== Embedding == + +Dango can be embedded by adding it as a dependency after downloading from source. + +<pre> +use dango::dango_utils::{ + self, + dango_errors, + dango::runtime::{ + self, + Value, + Program + } +}; + +unsafe fn exec_code(&mut self) { + do_stuff(); + let mut program = dango_utils::compile_str(&amp;user_input_idk); + match program { + Ok(program) => { + self.spawn_dango_thread(program); + println!("{}", "what do I do"); + } + Err(errors) => unsafe { self.handle_err(errors) }, + } + do_more_stuff(); +} </pre> @@ -202,14 +263,110 @@ <pre> -(j)(4)(while)(!=)(1)(:io-input)---- +(j)(3)---- eat (0)(while)(=)(0)(:io-input)(0)---- +(j)(2)---- eat (1)---- +</pre> + +=== Cat program === + +<pre> +eat (:io-input)(0)---- +</pre> + +=== Truth machine === + +<pre> +remove (I forgot to fix this program)---- +(j)(5)(while)(=)(')(0)(:io-input)(0)---- eat (1)---- -(j)(2)---- +(j)(3)---- eat (0)---- </pre> -=== Cat program === +=== Fibonacci number (iterative) === + +<pre> +(`)(1)---- remove (Our fibonacci number)---- +fetch 0 fetch 0 +remove (Fib[n], iterative fibonacci by the way)---- + (j)(9)(while)(!=)(0)---- fetch 0 remove (if n == 0 -> 0)---- + (j)(46)(0)---- + (j)(9)(while)(!=)(1)---- fetch 0 remove (if n == 1 -> 1)---- + (j)(46)(1)---- + + fetch 0 remove (let n = n)---- + (0)---- remove (let x = 0)---- + (1)---- remove (let y = 1)---- + (1)---- remove (let i = 0)---- + remove (while i < y)---- + remove (top i y x n bottom )---- + + fetch 2 remove (x)---- + remove (top x i y x n bottom )---- + + fetch 2 remove (y)---- + remove (top y x i y x n bottom )---- + + (+)---- remove (let z = x + y)---- + remove (top z i y x n bottom )---- + + fetch 4 remove (n = n)---- + remove (top n z i y x n bottom )---- + + fetch 3 remove (x = y)---- + remove (top x n z i y x n bottom )---- + + fetch 2 remove (y = z)---- + remove (top y x n z i y x n bottom )---- + + fetch 4 + (+)(1)---- remove (i = i + 1)---- + remove (top i y x n z i y x n bottom )---- + + fetch 0 remove (get i)---- + remove (top i i y x n z i y x n bottom )---- + + fetch 4 remove (get n)---- + remove (top n i i y x n z i y x n bottom )---- + + (j)(13)(while)(<)---- + remove (end while)---- +remove (end)---- +eat (')(F()---- +eat +eat ('c)(41)---- +eat (')( = )---- +eat +eat ('c)(10)---- +</pre> + +=== [[User:RaiseAfloppaFan3925/Program forms#User-friendly_iterative_Fibonacci_program|User-friendly iterative Fibonacci (golfed)]] === + +<pre> +(j)(11)(while)(=)(')(exit)---- fetch 0 fetch 0 (:io-input)(1)---- eat (')(Input a number: )---- +(j)(1)---- eat eat eat eat (')('exit' to exit)('c)(10)(')('help' to see this)('c)(10)---- (while)(=)(')(help)---- +(j)(1)---- eat eat (')(Invalid number. Try again.)('c)(10)---- (while)(=)()---- fetch 0 (`) +(j)(1)---- eat eat (')(Cannot get a negative Fibonacci number. Try again.)('c)(10)(while)(<)(0)---- fetch 0 +(j)(1)---- eat eat (')(Resulting value would be too large. Try again.)('c)(10)(while)(>)(92)---- fetch 0 +(j)(10)(0)(while)(=)(0)---- fetch 0 +(j)(10)(1)(while)(=)(1)---- fetch 0 +(1)(1)(0)---- fetch 0 +(j)(9)(while)(<)---- fetch 4 fetch 0 (+)(1)---- fetch 4 fetch 2 fetch 3 fetch 4 (+)---- fetch 2 fetch 2 +(j)(1)---- eat ('c)(10)---- eat eat eat ('c)(41)(')( = )---- eat eat (')(F()---- +</pre> + +=== User-friendly sleep program === -<Pre> -eat (:io-input)---- +<pre> +fetch 0 fetch 0 (:io-input)(1)(+)(')( )(+)('c)(58)(+)('c)(41)(')(Sleep for (seconds)---- +(j)(12)(while)(=)(')(exit)---- +(j)(1)---- eat eat eat eat eat eat (')('exit' to exit)('c)(10)(')('help' to show this)('c)(10)(')(this program takes in a number as input and sleeps for that amount of time)('c)(10)---- (while)(=)(')(help)---- +(j)(1)---- remove remove eat eat (')(Invalid duration. Try again.)('c)(10)---- (while)(+)(<)(0)---- fetch 1 (=)()---- fetch 0 fetch 0 (;)---- +(-)(:chrono-now)---- remove (:chrono-sleep)---- fetch 1 (:chrono-now)---- +(-)---- fetch 1 (0)---- +fetch 0 +(-)---- fetch 3 eat (')( seconds (error of )---- eat fetch 0 eat (')(Slept for )---- +eat eat ('c)(41)('c)(10)---- eat +remove remove remove remove +(j)(1)---- </pre> '
New page size (new_size)
10595
Old page size (old_size)
5256
Lines added in edit (added_lines)
[ 0 => '| class = [[Linear bounded automaton|likely Linear-bounded automaton]]', 1 => '| refimpl = [https://github.com/raiseAfloppaFan3925/dango <code>dango</code>]', 2 => '|-', 3 => '| <code>(`)</code>', 4 => '| <code>(`)(')(1234)----</code>', 5 => '| Converts a value to an integer, returns <code>()</code> if the conversion failed.', 6 => '|-', 7 => '| <code>(;)</code>', 8 => '| <code>(;)(')(0.401)----</code>', 9 => '| Converts a value to a float, returns <code>()</code> if the conversion failed.', 10 => '</pre>', 11 => '', 12 => '== Standard Library ==', 13 => '', 14 => 'For some reason, Dango has a standard library.', 15 => '', 16 => '=== I/O ===', 17 => '', 18 => '* <code>:io-input</code> - can do either <code>(:io-input)(0)</code> which just takes in input, or <code>(:io-input)(1)----</code> where an extra prompt argument is needed', 19 => '* <code>:env-args</code> - returns the argument vector passed to Dango', 20 => '', 21 => '=== Time ===', 22 => '', 23 => '* <code>:chrono-now</code> - returns the number of seconds (with milliseconds) since the Unix epoch', 24 => '* <code>:chrono-sleep</code> - sleeps for the given amount of seconds (int and float supported)', 25 => '', 26 => '=== Math ===', 27 => '', 28 => '* <code>:math-cos</code> - returns the cosine of a number', 29 => '* <code>:math-e</code> - returns the value of Euler's number <math>e</math> (approx. 2.71828...)', 30 => '* <code>:math-pi</code> - returns the value of <math>\pi</math> (approx. 3.14159265358979...)', 31 => '* <code>:math-sin</code> - returns the sine of a number', 32 => '* <code>:math-sqrt</code> - returns the square root of a number', 33 => '* <code>:math-sqrt2</code> - returns the value of <math>\sqrt{2}</math> (approx. 1.41421...)', 34 => '* <code>:math-tan</code> - returns the tangent of a number', 35 => '', 36 => '== Embedding ==', 37 => '', 38 => 'Dango can be embedded by adding it as a dependency after downloading from source.', 39 => '', 40 => '<pre>', 41 => 'use dango::dango_utils::{', 42 => ' self,', 43 => ' dango_errors,', 44 => ' dango::runtime::{', 45 => ' self,', 46 => ' Value,', 47 => ' Program', 48 => ' }', 49 => '};', 50 => '', 51 => 'unsafe fn exec_code(&mut self) {', 52 => ' do_stuff();', 53 => ' let mut program = dango_utils::compile_str(&amp;user_input_idk);', 54 => ' match program {', 55 => ' Ok(program) => {', 56 => ' self.spawn_dango_thread(program);', 57 => ' println!("{}", "what do I do");', 58 => ' }', 59 => ' Err(errors) => unsafe { self.handle_err(errors) },', 60 => ' }', 61 => ' do_more_stuff();', 62 => '}', 63 => '(j)(3)---- eat (0)(while)(=)(0)(:io-input)(0)----', 64 => '(j)(2)---- eat (1)----', 65 => '</pre>', 66 => '', 67 => '=== Cat program ===', 68 => '', 69 => '<pre>', 70 => 'eat (:io-input)(0)----', 71 => '</pre>', 72 => '', 73 => '=== Truth machine ===', 74 => '', 75 => '<pre>', 76 => 'remove (I forgot to fix this program)----', 77 => '(j)(5)(while)(=)(')(0)(:io-input)(0)----', 78 => '(j)(3)----', 79 => '=== Fibonacci number (iterative) ===', 80 => '', 81 => '<pre>', 82 => '(`)(1)---- remove (Our fibonacci number)----', 83 => 'fetch 0 fetch 0', 84 => 'remove (Fib[n], iterative fibonacci by the way)----', 85 => ' (j)(9)(while)(!=)(0)---- fetch 0 remove (if n == 0 -> 0)----', 86 => ' (j)(46)(0)----', 87 => ' (j)(9)(while)(!=)(1)---- fetch 0 remove (if n == 1 -> 1)----', 88 => ' (j)(46)(1)----', 89 => '', 90 => ' fetch 0 remove (let n = n)----', 91 => ' (0)---- remove (let x = 0)----', 92 => ' (1)---- remove (let y = 1)----', 93 => ' (1)---- remove (let i = 0)----', 94 => ' remove (while i < y)----', 95 => ' remove (top i y x n bottom )----', 96 => '', 97 => ' fetch 2 remove (x)----', 98 => ' remove (top x i y x n bottom )----', 99 => '', 100 => ' fetch 2 remove (y)----', 101 => ' remove (top y x i y x n bottom )----', 102 => '', 103 => ' (+)---- remove (let z = x + y)----', 104 => ' remove (top z i y x n bottom )----', 105 => '', 106 => ' fetch 4 remove (n = n)----', 107 => ' remove (top n z i y x n bottom )----', 108 => '', 109 => ' fetch 3 remove (x = y)----', 110 => ' remove (top x n z i y x n bottom )----', 111 => '', 112 => ' fetch 2 remove (y = z)----', 113 => ' remove (top y x n z i y x n bottom )----', 114 => '', 115 => ' fetch 4', 116 => ' (+)(1)---- remove (i = i + 1)----', 117 => ' remove (top i y x n z i y x n bottom )----', 118 => '', 119 => ' fetch 0 remove (get i)----', 120 => ' remove (top i i y x n z i y x n bottom )----', 121 => '', 122 => ' fetch 4 remove (get n)----', 123 => ' remove (top n i i y x n z i y x n bottom )----', 124 => '', 125 => ' (j)(13)(while)(<)----', 126 => ' remove (end while)----', 127 => 'remove (end)----', 128 => 'eat (')(F()----', 129 => 'eat', 130 => 'eat ('c)(41)----', 131 => 'eat (')( = )----', 132 => 'eat', 133 => 'eat ('c)(10)----', 134 => '</pre>', 135 => '', 136 => '=== [[User:RaiseAfloppaFan3925/Program forms#User-friendly_iterative_Fibonacci_program|User-friendly iterative Fibonacci (golfed)]] ===', 137 => '', 138 => '<pre>', 139 => '(j)(11)(while)(=)(')(exit)---- fetch 0 fetch 0 (:io-input)(1)---- eat (')(Input a number: )----', 140 => '(j)(1)---- eat eat eat eat (')('exit' to exit)('c)(10)(')('help' to see this)('c)(10)---- (while)(=)(')(help)----', 141 => '(j)(1)---- eat eat (')(Invalid number. Try again.)('c)(10)---- (while)(=)()---- fetch 0 (`)', 142 => '(j)(1)---- eat eat (')(Cannot get a negative Fibonacci number. Try again.)('c)(10)(while)(<)(0)---- fetch 0', 143 => '(j)(1)---- eat eat (')(Resulting value would be too large. Try again.)('c)(10)(while)(>)(92)---- fetch 0', 144 => '(j)(10)(0)(while)(=)(0)---- fetch 0', 145 => '(j)(10)(1)(while)(=)(1)---- fetch 0', 146 => '(1)(1)(0)---- fetch 0', 147 => '(j)(9)(while)(<)---- fetch 4 fetch 0 (+)(1)---- fetch 4 fetch 2 fetch 3 fetch 4 (+)---- fetch 2 fetch 2', 148 => '(j)(1)---- eat ('c)(10)---- eat eat eat ('c)(41)(')( = )---- eat eat (')(F()----', 149 => '</pre>', 150 => '', 151 => '=== User-friendly sleep program ===', 152 => '<pre>', 153 => 'fetch 0 fetch 0 (:io-input)(1)(+)(')( )(+)('c)(58)(+)('c)(41)(')(Sleep for (seconds)----', 154 => '(j)(12)(while)(=)(')(exit)----', 155 => '(j)(1)---- eat eat eat eat eat eat (')('exit' to exit)('c)(10)(')('help' to show this)('c)(10)(')(this program takes in a number as input and sleeps for that amount of time)('c)(10)---- (while)(=)(')(help)----', 156 => '(j)(1)---- remove remove eat eat (')(Invalid duration. Try again.)('c)(10)---- (while)(+)(<)(0)---- fetch 1 (=)()---- fetch 0 fetch 0 (;)----', 157 => '(-)(:chrono-now)---- remove (:chrono-sleep)---- fetch 1 (:chrono-now)----', 158 => '(-)---- fetch 1 (0)----', 159 => 'fetch 0', 160 => '(-)---- fetch 3 eat (')( seconds (error of )---- eat fetch 0 eat (')(Slept for )----', 161 => 'eat eat ('c)(41)('c)(10)---- eat', 162 => 'remove remove remove remove', 163 => '(j)(1)----' ]
Unix timestamp of change (timestamp)
'1768243322'