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

00:00
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
00:06
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
00:12
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.
00:18
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
00:19
@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
00:20
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?
:=
00:21
The Firework operator
<-, and write it RTL
-->
I ask one simple question lol
00:22
^
|
@RedwolfPrograms lambda:
is defined to be equal to
>>
00:22
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
00:26
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
00:27
@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
00:28
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
00:29
@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
00:30
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
00:31
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)
00:32
@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.
00:35
@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
00:36
@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
00:37
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
00:39
@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?
00:42
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
@hyper-neutrino cursed.
incorrect. it is pure art
I should make \" ' and \' "
Strings should open with " and close with '
00:47
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!")
00:49
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
00:50
@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.
00:52
@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
00:57
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??
00:58
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
00:59
@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
01:01
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))
01:04
First
I'll second that
@DLosc That's pretty cool!
All the credit to @hyper-neutrino
a(b)(x)
01:06
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
01:08
@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
01:12
@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
01:15
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:
01:17
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
01:19
@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
01:24
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
01:25
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
01:33
@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 ಠ_ಠ
01:42
@hyper-neutrino Yay
@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
01:51
@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
@DLosc ok I was using the wrong thing
01:54
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
01:59
great first use then

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