Talk:My Unreliable Past

From Esolang
Jump to navigation Jump to search

Is this random starting state related to the idea of Boltzmann brains? – b_jonas 12:39, 14 November 2014 (UTC)

Transactions

"However, if any command within the transaction fails, the effects of all the commands in the transaction are reversed, reverting the value of every variable back to the value it had at the start of the program."

Should this read "However, if any command within the transaction fails, the effects of all the commands in the transaction are reversed, reverting the value of every variable back to the value it had at the start of the transaction."? BCompton (talk) --(this comment by BCompton at 23:35, 17 November 2014‎ UTC; please sign your comments with ~~~~)

Err, yes it should, good catch. I'll go fix it. 23:37, 17 November 2014 (UTC) --(this comment by Ais523 at 23:37, 17 November 2014‎ UTC; please sign your comments with ~~~~)

IO

Sorry for all the questions, I am really interested in this idea and am building an interpreter. You say "If at any time (except in the middle of a transaction) ..., then after a random number of transactions have succeeded or failed,..." Is this meant to be interpreted in a probabilistic sense, such that for every transaction, there is a non-zero probability that O or I will spontaneously change? Or does some sort of a counter get set if O is > 0 or I = 0 that counts down from a random number, and then causes the effect to occur when it reaches zero? If so, will changing I or O during the intervening time have an effect on the counter? BCompton (talk) --(this comment by BCompton at 18:28, 18 November 2014‎ UTC; please sign your comments with ~~~~)

I'm happy with either of those methods. It's meant to permit pretty much any nondeterministic method of deciding (for instance, you could use a separate thread for I/O that just looks at I and O). I'd say that for some subset of transactions, there needs to be a non-zero probability of spontaneous change, and that's about the maximum extent of the requirements. 19:03, 19 November 2014 (UTC)~
Cool. I have an implementation built using the first method. Used it to test my Hello World! as well as a Cat program.BCompton (talk) 20:21, 19 November 2014 (UTC)
Incidentally, I'm not so certain about the failure chance of your Hello World being less than 1 in 1000. Do you have an exact calculation? The program prints nothing or one garbage character if A starts at 113 or more, and produces incorrect output if A starts at 101 or more. I think the chance of picking numbers this high is more than 1 in 1000, isn't it? --ais523 20:32, 19 November 2014 (UTC) 20:32, 19 November 2014 (UTC)
I think I was one bit off. 1/2^(bits+1) = 1/256. The chance of the 7 bit number being > 100 is ~1/2.3 so ~1/589. Does that sound right?BCompton (talk) 20:48, 19 November 2014 (UTC)
That looks about right, yes. (Of course, having any probability of failure is against the spirit of the language in a way, but it's certainly a valid choice to make when writing programs.) ~~ --ais523 22:01, 19 November 2014 (UTC)
Yeah, I'm struggling with finding a programming style for the language that doesn't involve probabilistically setting up my variables at the start. Any ideas?BCompton (talk) 01:12, 20 November 2014 (UTC)

Fix for Hello World?

If you add an A-113; somewhere in the program, then it will only lower A by 113 when A is greater than 113; thus, this should fix it? (Also, obviously, doing the A-112, A=0, A+100; would make it loop, which seems to be a better output) 168.99.197.15 18:22, 30 January 2015 (UTC)