« first day (3750 days earlier)      last day (1076 days later) » 

12:00 AM
I have 19 "favourite rooms" (+ the Tavern on the Meta, on meta.chat) :P
 
nice :P i only have 8
an interesting thing to consider about the chat events that was brought up in comments (idk if mentioned in chat) is timezones
 
oh dear I did it again. I pushed to main without testing
 
day-long is definitely impractical but i think redwolf's proposal to move it around to different times could make sense, unless there's a time where pretty much all active members are active together (doubt)
@lyxal congrats, what did you break this time
 
@hyper-neutrino dunno. I didn't test
that's the point
 
12:06 AM
but according to preliminary calculations, maybe 3 answers.
 
We could probably pick two times maybe eight hours apart, where the most ROs here are active. Chances are everyone will be active during at least one of those two times.
How important would y'all say bitwise operators are for a practical language?
 
i'd say pretty important but not critical
 
I almost never use them, except for some low level stuff and some awful hacks with the JS type system
 
mhm. fair; i rarely use them too lol
 
Take a look at most of xnor's or Arnauld's answers, they use bitwise operators a crazy amount :P
 
12:12 AM
They are good for JS golfing, but my implementation would probably be a bit more sane than JS's and thus a bit less golfy :p
 
↳↲⋏⋎꘍ꜝ would like a word with you
 
I like ! for not, but I prefer and and or for boolean operators. Do y'all think that'd be too confusing?
Or should I also add not, but give it a lower precedence?
 
@RedwolfPrograms ∧∨ for logic
 
1. Those don't monospace well
2. Those aren't ASCII
This is a practical language
 
oh
bad.
 
12:18 AM
Julia would like a word :P
 
factor would too
 
A JS-like practical language :p
 
add xor you don't need anything else
 
that sounds cursed
 
12:19 AM
@hyper-neutrino I think you mean nand :P
2
 
Yeah, good luck making and with xor :p
 
@cairdcoinheringaahing based.
 
i think i meant xnor
but maybe that doesn't work either :c
 
It doesn't
nand or nor IIRC
 
Pretty sure xnor can implement a lot more than all the boolean gates
 
12:20 AM
wait adding xnor only is the same as adding xor only cuz you can just xor with true
nand is definitely what i was supposed to be thinking of though
 
I've seen him write some crazy golfs, boolean gates seems pretty trivial
 
@hyper-neutrino yes
I know this because when we covered logic gates in SW class, one of the first things we did was construct every gate (read or, not, and, xor) from just nand
 
Should I use -> or => for functions?
 
:=
 
12:21 AM
The Firework operator
 
<-, and write it RTL
 
-->
 
I ask one simple question lol
 
12:22 AM
^
|
 
@RedwolfPrograms lambda:
 
is defined to be equal to
 
>>
 
12:22 AM
will be a function that does the following:
:=)
 
>=< the candy wrapper operator (that's the first thing i thought of, at least)
 
@RedwolfPrograms i'm <function name>. You're not <function name>, you're <language name>
Name the language "Lyxal" :P
 
^
this is going in my bookmark collection
 
Ok, so I'mma move this all to Indonesian Gambling Spam :P
2
 
12:26 AM
no why must everything fun be removed
 
because fun is not permitted in TNB
 
I personally support keeping this
 
I'll just move the "larger" ones :P
 
stop screwing up my bookmarked conversations ffs
 
12:27 AM
@cairdcoinheringaahing F
 
omg guys caird is a spammer
6
 
Should print be a keyword or function?
I support keyword
 
function
 
function
all the way
 
neither
implicit printing ftw
 
12:28 AM
I like print being a keyword. It just feels more natural to me.
 
Hey guys, visit https://indonesiancasinos.com/gimmeallyourmoney, it's a totally real site, trust me ;)
 
@RedwolfPrograms fixed var
 
but then if you want to use it as a function you'd have to define a function for it
 
print(xyz) just feels like I'm using some sleazy user defined thing
 
just don't use parentheses for function calls
 
12:29 AM
@UnrelatedString What do you mean by "use it as a function"?
 
stdout <- xyz
 
@cairdcoinheringaahing sad. I was looking forward to repeating my losses from my time playing WSOP
 
like, pass it as a callback to something
 
send "hello, world" to stdout please
 
@UnrelatedString I actually kinda like that taking extra work :p
 
12:30 AM
okay so here's the deal. I need you to make the words "Hello, World!" visible in the STDOUT channel
 
But more annoying
 
Ugh, I really don't like % as modulo. Maybe I should make it mod instead
 
%% for modulo
 
Maybe I'll do a ! and have mod too, but with a different precedence
 
12:31 AM
oh even better, make 69 the modulo operator and make % eval as 69
 
just make mod a function, and have syntax for making anything infix
 
So x + 1 mod 4 would be (x + 1) % 4
 
Take the remainder of x with y
 
@RedwolfPrograms Are you just taking every existing style/builtin/function name for specific functionalities and going "Nah, don't like it. Imma use a different one"?
 
don't have a mod operator. mod is a special construct that allows x == y (mod z)
 
12:32 AM
@cairdcoinheringaahing No! Only the ones I don't like. :p
 
@RedwolfPrograms x plus 1 mod 4
 
ex plus one mod four
 
the remainder when the sum of x and 1 is divided by 4
 
@RedwolfPrograms \
 
But c'mon, % as modulo is just ugly. You can't tell me you don't secretly agree.
 
12:35 AM
@RedwolfPrograms I can
 
@RedwolfPrograms I like %
 
* Wezl is making a language where lambda is a function so you can name it whatever you want
 
@RedwolfPrograms % is love, % is life
 
Wow, that made Redwolf leave :P
 
I will die on this hill :p
 
12:36 AM
@RedwolfPrograms % is not a bad operator
 
@RedwolfPrograms would that make you king of that hill?
 
@lyxal dead king of the hill
 
Not if he dies
 
@RedwolfPrograms yes please, but make it a function so it can be renamed :)
 
I do kinda like having both, so it's fine...for now.
Y'all really do like functional programming don't you
 
12:37 AM
well, programming is considerably harder when your language is dysfunctional
 
@RedwolfPrograms salivates at the mention
 
Luckily I escaped from Haskell once I saw the `infix_function` thing
 
@RedwolfPrograms Jelly's lack of user-defined first-class functions is the worst failing of the language :P
 
Isn't that the whole point of links/chains/quicks/whatever
 
thanks to operator overloading, you can make "infix functions" in python
lemme write up a copy; this is something dingledooper showed me iirc
 
12:39 AM
@RedwolfPrograms Kinda of. The fact that challenges always use Ç and family suggests otherwise
@hyper-neutrino int.__add__ = print
 
ಠ_ಠ
 
Python making __ what all the special fancy things use seems very against Python's goals.
 
int.__add__, int.__mul__ = int.__mul__, int.__add__
 
unfortunately you cannot do that
 
wth do |s do?
 
12:42 AM
bitwise OR
 
@hyper-neutrino That's awesome
 
but you have them surrouding add
|add|
 
@lyxal that's just spacing :)
it's (2 | add) | 3
 
oh
 
(2 | add) returns a partial function for add with 2 on the left by overriding right-side OR, and partial | 3 calls the function with its partial arguments by overriding left-side OR
 
@DLosc unfortunately i forget where i saw it now but it is really cool lol
 
# is an infix function that returns it's left argument
 
wait since when does | do function stuff?
 
@cairdcoinheringaahing bruh
@lyxal since i operator overloaded it :)
 
ah
didn't see that
 
12:44 AM
lol
 
@hyper-neutrino cursed.
 
incorrect. it is pure art
 
I should make \" ' and \' "
 
Strings should open with " and close with '
 
12:47 AM
print("Hello, World!')
 
< ... >, so you can't use those symbols for greater/less than, and so you have to escape the shit out of html tags
 
What if you define a child function for string so that you can "Hello, World!".print()
 
you can't override built-in types' methods
or wait
do you mean for redwolf's lang
that would be extra cursed
 
@okie Even better: "Hello, World!'.print('Hello, World!")
 
12:49 AM
D:
 
Strings have a .print method, but print their argument, not the string to which it's an attribute
 
Unless it's equal to the first string of course
In which case it errors
 
no
oh yes exactly
 
@cairdcoinheringaahing Randomly select between attribute or argument
 
all operators have a 50% chance to swap their arguments
 
12:50 AM
@okie Randomly select, one is printed to STDOUT and the other to STDERR
 
redwolf: hi i want to make a practical language
everyone in TNB: i'm about to end redwolf's whole career
 
@hyper-neutrino I was so close to getting a 2 <add> 3 syntax working, but chaining comparison operators bit me in the rear end. It turns into (2 < add) and (add > 3), and I don't think there's a way to overload logical and. :(
 
would you like to make the output a list
 
@DLosc aw that's annoying
wait i have a horribly cursed idea
 
The only time I've had anything bad to say about comparison chaining, which is normally one of the awesomest things about Python.
 
12:52 AM
@DLosc overload boolean and
 
Integers also have a .print attribute, but that takes a string as an argument (e.g. 1 .print('Hello, World!')) and it physically prints that many pages, each containing the argument
So 3 .print('Hello, World!') prints 3 pages of paper, each of which contains only Hello, World!
 
boolean.print will assert the boolean and then print reversed string if it's True, EOFerror otherwise
 
@okie Not sure how? __and__ is bitwise and, I believe.
 
use uhhh
state
 
that's what i'm trying
but it does not seem to actually do what i think it should
 
even this doesn't work
 
@hyper-neutrino What in the...
 
also, returning False from __rlt__ doesn't actually make this evaluate to false
 
12:57 AM
Where's the None coming from?
 
Oh, wait. It's not actually doing the thing.
 
...
@hyper-neutrino there is no such thing as __rlt__
 
^^
 
wait so does it use __gt__ for both sides??
 
12:58 AM
Doesn't it just use __gt__?
I think so
 
@hyper-neutrino yep
 
Python's clever
 
Because a>b always means b<a
 
this works then
 
12:59 AM
@hyper-neutrino I'm shocked I didn't realise that __rlt__ isn't a thing. I've redefined/defined so many Integer classes and similar in Python that I should know that isn't a thing
 
1 hour ago, by hyper-neutrino
@RedwolfPrograms :D you learn something new every day
 
Sandbox posts last active a week ago: Decompress a Sparse Matrix (WIP), (untitled)
 
@hyper-neutrino Ahhhh, okay. I didn't think that many layers deep. Nice work!
 
Hey look, I made it make sense :P
 
I forgot to update OSP today lol
 
1:01 AM
i also forgot to remind you lol
 
@RedwolfPrograms Update OSP :P
 
Working on it :p
 
I only pushed some HTML tag bug fixes, so it wouldn't've changed anything today :P
Also, whoever said HTML cant be parsed by regex, I have a chatbot to show you :P
 
@RedwolfPrograms Here ya go :)
(In all seriousness, if you're not concerned about golfiness, I see no problem with having mod as an operator. QBasic does it that way.)
 
should (a . b)(x) be a(b(x)) or b(a(x))
 
1:04 AM
First
 
I'll second that
 
@DLosc That's pretty cool!
 
All the credit to @hyper-neutrino
 
a(b)(x)
 
1:06 AM
I think the application order is reversed?
 
Wait I was supposed to be updating OSP why did I just read half the wikipedia page on C0 control codes
 
@cairdcoinheringaahing 10/10
 
beautiful
print(100 %mod% mod %mod% 3)
 
The mod fractal
 
1:08 AM
@cairdcoinheringaahing It starts to confuse me
 
@okie Ignore the header. %mod% is the new Python syntax for modulo
 
OSP updated
(or I didn't actually update it and I have 24 hours before caird finds out so I can run away and hide)
 
Ok I think i just stupidly thought that % was modified
 
I can easily get to Texas in 24 hours :P
 
Try caird-easily-getting-to-Texas-in-24-hours online?
Aw, you changed it :p
 
1:12 AM
@RedwolfPrograms it's not too late to try and escape over here
 
Also, class int(int): being valid syntax is incredibly cursed
 
I love inheriting from myself
 
Python incest
3
 
no. just, no.
 
i spent way too long on this (you'll need to click "read more" so the link doesn't break)

https://tio.run/##nZXLboMwEEXXyVe4i0SmT6lpNyhk1e8IcoJpkIxNDbQTqf9O7VJSI3vhyRIxZ86VfGU35@6k5GYYjoK1LXnr6/qcLhcFL0meV7Lq8py2XJT3pCQZEaw@FIxASiAxUwv759H@KCfkyIS4IOOQ5l2vJRlnKSTTKCuK8ORvCPrnYulEsoTckX9cR/NguMuOC9/2B6z@wdVH82A4X1/3Aqu/dfXRPBjO13e650X1iY3w5EZA7QDD@jFKoZS@JscsCG4LWDpwIApdx9XsQFR0HVcBfaO@0H2YFSJ6AVjQDyDaU1V22AzbrZsBswMs68fQV8XY7dwYGhXDsH4MJtFtWM8uJxndhnVArzTW/u3aY3EwmC8HvH3v2iFevw8VEV9Cx/4eX7@Qm6PdmSvn0fIsYOcfWHvm2mW0/WZmX@bmBR@HzEejK9lR@mxvCZqbp3Njr/3XhL4kyTD8AA
nvm apparently you don't need to click that
 
1:15 AM
that seems like lambdas with extra steps
 
well done
 
i have reinvented the wheel
but much worse
cuz you can't call functions or anything on it
oh i should've implemented getitem and getattr too
 
you used the lambda to make the lambda
:clap:
 
1:17 AM
Now try allowing multiple _s
Then it's like Scala in Python
 
ಠ_ಠ SE doesn't keep tracking tag wiki edits after you get Research Assistant
 
i took a lambda and decomposed it into nested lambdas for each operation
i could implement multiple of these but it would take... considerably more effort
 
I can't even use two _s in one
sad
 
1:19 AM
@hyper-neutrino I'mma have to ask you to stop before you commit python war crimes
 
cuz _ + __ binds __ to the right of the _ dummy with add, so when you call it with v, it adds v to __ which binds v to the left of the __ dummy with add, which you can then call on w to get v + w
Print@Add[2, 3]
 
What about Print[2~Add~3]?
 
~ isn't infix so unfortunately that can't work
 
Time to introduce macros
 
i'm sad that python doesn't have them
 
1:24 AM
Yeah
 
Python needs C's #define preprocessing :P
 
5 things i wish python had:
1. macros
2. => instead of lambda:
3. inline <op>=
4. ++ / --
5. TCO
 
@cairdcoinheringaahing #define is super cursed
 
@Bubbler Which is why I want it :P
 
Frick
 
1:25 AM
still trying to think of more cursed things i can do
 
How about J-ython, in the sense of J-uby
 
Isn't that a thing?
> Jython is a Java implementation of Python that combines expressive power with clarity.
 
jython is some cursed amalgamation of java and python
 
import org.python.util.PythonInterpreter;

public class JythonHelloWorld {
  public static void main(String[] args) {
    try(PythonInterpreter pyInterp = new PythonInterpreter()) {
      pyInterp.exec("print('Hello Python World!')");
    }
  }
}
What in the frickedy frack is that?
 
I mean, the J in J-uby is the J language, not Java
but yeah, Jython is very well cursed
 
1:33 AM
@hyper-neutrino Yup, checks out :D
 
You forgot the unary operators, though. Shouldn't be any trouble to add them.
 
ah, right
hey, got my 4th yearling badge :P
 
For someone who's been around since 2015, that doesn't sound right :P
 
i should be 3 months short of my 6th ಠ_ಠ
 
1:42 AM
@hyper-neutrino Yay
 
nice :D
 
@cairdcoinheringaahing the prime factors part is wrong, but the lucky number generator is correct
 
lol since Citty has a really long pronouns description/section and i have glorfindel's pronoun assistant script, it makes their username look funky when they post / comment
 
@DLosc need a bit of help, idk why this isn't working: Try it online!
 
Does that script actually work? Everytime I've tried it, it hasn't actually done anything
 
1:51 AM
@Razetime Use the -d, Luke (looks like you want a function instead of the first x?)
 
it works for me
 
Huh, just reinstalled it and it's working
 
nice :D
 
@DLosc ok I was using the wrong thing
 
1:54 AM
yeah... that happens. F
 
Zooming out to 80% fixes it :P
I very much dislike being this zoomed-out tho
 
@Razetime Shorter
 
comma????
so that's what regex alternation is..
 
This might be the first time I've ever used it, but yes
 
1:59 AM
great first use then
 

« first day (3750 days earlier)      last day (1076 days later) »