IRP
From Esolang
IRP (Internet Relay Programming) is an esoteric programming language designed by Gregor Richards that uses a cooperative programming approach. There are several variations, but the most common is IRP#IRP.
To program in IRP#IRP, join the #IRP channel on irc.freenode.net, then simply write, in plain English, in polite command form, what you intend for your program to do. If other IRP programmers (knowingly or not!) are on the channel, and are in a good mood, you should get the appropriate response.
Make sure you ask politely and thank your fellow IRP programmers for their assistance!
Contents |
[edit] Turing-completeness
IRP is probably not Turing-complete due to the limited faculty of the human brain (unless they're allowed to keep notes on paper), but it can quite trivially be proven to be a Bounded-storage machine. The proof itself is left as an exercise to the reader.
[edit] Examples
[edit] Hello, World!
<GregorR> Please say "Hello, World!" <jix> Hello, World!
[edit] Fibonacci sequence
<GregorR> Please, some one write the first 16 numbers of the Fibonacci Sequence. <calamari> 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
[edit] Quine
<GregorR> Please write this exact line to this channel. <jix> Please write this exact line to this channel.
Due to IRP's nature, any quine is potentially a severe DDOS worm.
[edit] Safe quine
<linde> Please write this exact line unless it has been written more than once before. <boom> Please write this exact line unless it has been written more than once before.
[edit] Iterating quine
<CakeProphet> Could someone please ask someone to repeat this request? <pikhq> Could someone please repeat the previous request? <RodgerTheGreat> Could someone please ask someone to repeat this request?
The only real problem with a quine in this format is that it could easily lead to infinite recursion, until the interpreters get bored. Another potential problem is THE INTERPRETER BEING A NOOB AND PUTTING QUOTATIONS AROUND THE ORIGINAL REQUEST... however this can be prevented by changing the source to
<CakeProphet> Could someone please ask someone to repeat this request WITHOUT BEING A NOOB AND PUTTING QUOTATION MARKS AROUND IT <RodgerTheGreat> ERROR 8: DON'T_BE_A_DOUCHE_TO_YOUR_INTERPRETER ERROR
Or not.
[edit] 99 bottles
Due to a bug in the IRP interpreter, it is very difficult to produce a working implementation of the 99 bottles program in this language. Shown below is a typical result of this bug.
<GregorR> Please, write the lyrics to the song 99 Bottles of Beer on the Wall. <memonic> go to hell
[edit] Lightbulb change
Note that this tends to be inefficient; timing information is added here.
[16:04:45] <ais523> Would someone here please change a lightbulb? [16:13:51] <MichaelRaskin_> #Done [16:14:07] <MichaelRaskin_> #No observable effects for you, though
[edit] Implementations
Implementations in other programming languages such as C, tcl, or perl are easy to come by, but tend to be quite flawed, implementing only a very incomplete subset of the language and sometimes requiring awkward syntax in statements. A self-hosted implementation in IRP does not exist because if it did it would be quite annoying.

