Talk:Random
If anyone has the Python script, could you re-upload it / post it? Thanks
--Orange 03:40, 11 August 2008 (UTC)
Turing completeness
You could propably implement bitwise Cycling tag in Random to prove its turing completeness
131.234.240.105 10:41, 16 June 2010 (UTC)
- I have a hunch something like compiling Boolfuck (minus I/O) into Random might be easier, actually. It has a very Boolfuck/Brainfuck like loop, and if you have a layout something like
half of data - currently running code - other half of data
- then it looks easier to me for the running code to use the data as a tape (i.e. two stacks) than as a queue, since it seems hard to pass through the code part. Hm also you cannot delete stuff without printing it, although that is not actually important for TC-ness, I think. --Ørjan 13:02, 16 June 2010 (UTC)
- Actually, I think the @ command would be hard to implement. I don't think that Random has the ability to change things. --User:A 19:15, 16 July 2018
I think the solution is to treat this as a BF-like language with insertion and deletion. (You can then implement something like Boolfuck's @
command via a deletion and insertion.) If you don't care about output-completeness, you could just output things to delete them, but assuming that the language is "fixed" so that output outputs a copy of the last entry (rather than popping it) and thus has the same semantics as ><
, I suggest the following scheme:
0000
represents0
0011
represents1
01010101
represents a deleted element
(There's probably a terser scheme that works but this is clearest.) The idea is that you can easily make >
and <
skip deleted elements using something like >>>[>>>>]>
; the rest of the time, the "pointer" (i.e. the split between the front and back of the program) would point to the middle of an element, so a zero-test will have the expected semantics. It shouldn't be too hard to delete an element (which has known value) by inserting 0s and 1s into appropriate locations in it. --ais523 16:32, 16 July 2018 (UTC)