Skip to content

Instantly share code, notes, and snippets.

@L3viathan
Created May 24, 2015 17:37
Show Gist options
  • Select an option

  • Save L3viathan/21175e9e710ae0f481f0 to your computer and use it in GitHub Desktop.

Select an option

Save L3viathan/21175e9e710ae0f481f0 to your computer and use it in GitHub Desktop.
Request for Comments: Rules and Operators for multi-level chat communication
[version 1.1]
Chatting happens in different levels, which allows for multi-threaded conversations.
The different conversation levels are marked with a number of parantheses.
Example 1:
A: How are you?
A: (And how is your family?)
B: Fine (and fine, too).
The longer a conversation lasts, the more complicated this can become.
Example 2:
A: ((I know))
A: (((Why not? (Oh, from home.))))
B: (((Because it's too far away.)))
B: ((((yeah.))))
As evident from Ex.2, when conversation threads die, they often still remain implicitly,
because switching paranthesis levels is not intuitive. We therefore propose the
following operators:
OPERATOR NAME
<<n left shift
>>n right shift
^<n> level correction
All operators are unary. n always defaults to 1 and can (should) be ommitted (when it
is in fact 1). A left shift decreases paranthesis level of all conversation threads by
n.
Example 3:
A: ((Why did the chicken cross the Moebius strip?))
A: (Didn't you want to have left by now?)
B: <<
B: Oh shit. (To get to the same side.)
When a conversation thread is currently on level 0, it is removed from the conversation.
A left shift is supposed to be used when low-level threads have died out. In contrast, a
right shift operator, which *increases* paranthesis level, makes space for new important
threads.
Example 4:
A: I'm so bored.
B: >>2
B: Did you hear about the election results? (How's your flesh wound doing?)
B: ((Go watch tv.))
Ex. 4 also illustrates how to use the optional argument n.
When a message was falsely sent without (or with not enough) parantheses, the level
correction operator can help:
Example 5:
A: (So what about the cake?)
B: I ate it.
B: ^<>
This also works the other way around, leading to conversations such as the one in
Ex. 6. While this seems to be of only theoretical nature, it is useful when a remark
is made carefully (in parantheses) but immediately afterwards is deemed to not fit in
them.
Example 6:
A: What's for dinner tonight?
B: (Cake? :D)
B: ^<-1>
Finally, we also propose a shorthand notation for opening and closing multiple parantheses
by prepending the opening paranthesis with an integer. As usual, 1 is implied:
Example 7:
A: (What's up?)
A: ((I'm pretty bored))
B: (Not much)
B: 2(Me too)
A closing paranthesis always decreases the level by as much as its paired opening paranthesis
opened. So for example, in Ex.8 "foo" *has* to be on level 3, no less (and no more, either).
Example 8:
A: 3(This 2(is a test) foo.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment