« first day (4197 days earlier)      last day (645 days later) » 
00:00 - 20:0020:00 - 00:00

12:08 AM
@NoHaxJustRadvylf cmon at least limit it to the right letters
st?e[fg]{2}an
 
12:36 AM
@NoHaxJustRadvylf you get used to it eventually
 
0
Q: Have you heard of tralindromes?

BubblerI haven't. :P So I decided to define one: A tralindrome is a string which contains three sections X, Y, Z such that all characters in the string are included in at least one of the three sections, X and Y, and Y and Z overlap by at most one character, and X is equal to the reverse of Y, and Y is...

 
@NoHaxJustRadvylf the way I tell them apart is that one is the JVM/optimised language fork guy and the other is the put you to shame by fixing more bugs than you guy :p
And I respect both of them for that
 
well which is which
 
^ lolol
had the same thought
 
cgse user flash cards when
5
 
12:50 AM
seggan is the jvm guy
 
clearly witch is witch and wich is sandwich :P
4
 
lol
 
@Steffan meaning your the guy who we all wish to be :p
 
Sandbox posts last active a week ago: Verify the diamond property
 
1:12 AM
LDQ: is it bad if i special case a bunch of things that i see as useless operations
or did i fail by allowing it in the first place
e.g. concatenating string literals
 
wats ldq
 
lang design question
sorry i didnt LDQ:
 
oh lol
 
not too late to fix B)
 
👍
 
1:15 AM
but yea im like, working on a lang and i just realized i have a concatenation operator but im testing it on string literals li8ke... why am i allowing this
is it too stupid to try and make it golfy by special casing it :P
 
Well what do you mean by special casing?
 
oh like
if u use the concat operator on only string literals, do something otehr than concatenating them
like overload it based on the inputs
since its useless to concatenate string literals since you can just... write them as one string, non?
 
Not necessarily
What if you're constructing a string dynamically?
 
like, say, with variables?
 
What if you're taking a string from STDIN?
 
1:26 AM
i do not consider those to be string literals then
seeing as you would not include the string literal in your code, youd have the input call or what have you
"hello"+"world" is concatenating string literals, "hello" + prompt("") is not
 
Well then if you could just write the strings as one in regards to string literals, why can't you just write whatever transformation you'd have as a single string
 
thats my point
 
And then are you also going to change thing like addition with two numeric literals?
 
right, it can get kind of extreme
so the question is: as a language designer, is it overreaching to bar the user from doing "useless" things by overloading some other operation onto it?
 
I think it's fine to have a little "redundancy"
 
1:30 AM
It is possible to some extent but it's gonna get out of hand pretty quickly
 
Because where do you start drawing the line between things you could otherwise write and construction by smaller components
 
and certain amount of redundancy is unavoidable; deciding whether two programs do the same thing is an undecidable problem
 
3×4 is better written as 12, but 10^8 is definitely shorter than 10000000
 
LDQ: automatic string compression?
 
1:34 AM
Well when would it compress?
 
Pretty much, the language decides how to optimally express strings
 
@Bubbler right but like at the "this operator taking these kinds of inputs" level its a bit more ambiguous
or, not ambiguous
 
@thejonymyster There may still be undiscovered flavors of S.?e.{2}an though, like Spemman or Sellan
 
you are opening my eye's mind
 
@emanresuA so it could decide to have "beans" decompressed and "ostriches" as normal string?
@thejonymyster when your optimising certain programs into other operators, it can get confusing. But if it's static, uniform type overloading it's fine
 
1:37 AM
@emanresuA Having such a thing as a feature of your interpreter would definitely be handy
somewhat like hexagony -whatever printing the hexagonal grid of dots instead of running a program
 
@Bubbler EmanresuA means that the interpreter decides whether a string literal is treated as a compressed string or a normal string
 
@Bubbler oh snap i forgot abt that
 
A utility feature is always a good idea
But this isn't a utility feature
 
definitely gonna have a utility to show the tokenization of my lang lol
 
1:39 AM
It's a "compiler" feature
 
That... sounds weird? unless you somehow include a kind of flag in the literal itself
 
@emanresuA you'd have to make the algorithm for when it treats strings as compressed really clear to the user
And you'd have to make it so that it doesn't hinder challenges where you need overly specific string literals
 
maybe if it had a different delimiter from normal strings :P
 
e.g. if it starts with printable ascii it is normal string; otherwise it is a compressed string
@lyxal basically this
 
@thejonymyster that kinda defeats the purpose :p
The idea is that you'd only need one string literal syntax for both normal and compressed strings
 
1:42 AM
that was the joke ya xd
 
Do your eyes taste good
6
 
youre reading my emote backward
im a cyclops pirate and i just ate somethign sour
no but uh, yea i guess meddling with the users intentions in general is kind of iffy huh lol
 
@NoHaxJustRadvylf wanna come find out?
 
(Pls nobody take any of this out of context)
@lyxal I present to you today's cursed emoticon: :pXD
 
i wanna star it but that would make people take it out of context
 
1:51 AM
ATO:
https://ato.pxeger.com/run?1=pVbNattAEL6rLzG4FFaJ7NR2GoLAp4ZCoCkh9CZMWFsra7G8EtIqtih9kl5yad6pfZrunzaSErvCudjanfm--WY0q51fT1nF45Q9Pv4ueTS8_PvuS0gi2FIe3-Oc8gqpXw8i5vqO-B2pNcxA_TuQE17mTBgcJyrZktOUFcL6w4HBbVIWA7_JNfEgwZtFiGHn10-VDzs4hcr1BOSGsp6YCoawU5jvdEP6xjkxca6v6EMvCGUcVXB2JmJpgWnYU94HI-823fYVV6u7w2xFeoESWnCUS3e08wRai7w-muB0bCi-ErbicZti3KIgDJma3GKa9woWyBBzhfks2qQnZm6745qFZNevmIGJc0ceSF6QQ4moCmi3UKakmwqv-xWwCvydDnWVp1lPyM7XkBvMl3HP7pjNTBVk6Xg_kK5aeCB76fLTcTZpSCMqSmCObpTQbB8q6hM6QpVri1mQJOrH1tIWCQLLsYwxZfuyjjxYHeJZKRrFk8dpuj6WR-hpUCVvoVI8NrsozTtM0xaTB_H_yeJnaQtxpLuddZhx73usuauae4N7tsbLYya
 
2:35 AM
@DLosc Is there an operator to call a function?
Or do you have to do Id chain?
 
@DLosc Seems slightly similar to one of pxeger's ideas they posted here
 
@emanresuA To call a function how? Normally, you call a function by "pushing" a value ("pushing" in quotes because the value never goes onto the stack). Id chain leaves the function on top-of-stack essentially unchanged.
 
I realised that :P
 
Aha
 
pull
wait the word is pop nvm
 
3:03 AM
if you want to learn about mathematical proofs and discrete mathematics, now's your chance
because right now it is lyxture time
 
3:24 AM
Wait what can 10k users answer duplicate questions
 
@Steffan bro idek
just saw neil's answer on that runs of ones q
 
3:41 AM
yeah that's what prompted it
 
@Steffan Lag
 
for several hours it's been disabled to answer for me
so idk
 
Lag
You can answer a question for a while after it's been closed if you don't reload
 
That means I could just ping the api and do it
Or is it websocket
 
 
3 hours later…
7:12 AM
@NoHaxJustRadvylf yep, it's basically (a more sensible way of describing) tictac
I gave up on tictac because it was too confusing for basically no golfing benefit
 
7:34 AM
It's a bit too bad to see people giving up lang ideas because "it has no golfing benefit"
 
Don't get me wrong, I'm all for deliberately confusing languages
but I just felt there was nothing new about tictac that made it at all interesting, other than being backwards
 
8:35 AM
lol i just came across the newest answer for add a hidden lang to polyglot like just a few minutes ago and somehow clicked the correct lang within hundreds of languages on tio on my 3rd try
... and theres like no documentation for the lang
nvm, wayback machine to save the day, pulling up some website from like 2004
 
 
1 hour later…
9:56 AM
\o/ My interpreter now works!
(ish)
It can add two numbers and print "Hello, World!"!
 
10:06 AM
in CGCC Mod Office, 17 mins ago, by SmokeDetector
[ SmokeDetector | MS ] Link at beginning of answer, potentially bad ns for domain in answer, potentially bad keyword in answer (37): Have you heard of tralindromes?‭ by user113869‭ on codegolf.SE (@hyper-neutrino @lyxal)
Get a free spam flag in while you can
 
@lyxal How is that only 37?
 
/shrug
 
10:37 AM
0
Q: Swap every two elements in the list every possible way

PavgranInspired by this question. Challenge Let L be a list of n distinct elements. Let P be the set of all pairs of positions in P. Let R be a result of applying a pair-swap operation on L by every pair in P in any order. Example: L = [1, 7, 8] P = {(1, 2), (0, 1), (0, 2)} L = [1, 7, 8] -> [1, 8, 7] ->...

 
The top answer to this is amazing
 
ldw in 10 minutes
 
11:04 AM
oh damn i guess i can change my name to zbit0
@lyxal how is ^ idea lol
 
I think I've implemented my WIP golflang quite elegantly
I've made it so functions take and modify a stack, and have a set input and output arity; and modifiers take those functions and return different ones.
The whole program becomes one big function which I can just execute on a stack
 
11:51 AM
@PyGamer0 no, now it's 10 minutes
(9 actually)
it's 12PM UTC
 
12:07 PM
Welcome to the fourth Language Design Workshop! The general premise is that you can post work you've done or are doing on esolangs and people will give feedback. In short, you'll get to show off our languages and their features, chat about them, get feedback, try out WIP languages, and, hopefully get ideas over the next 24 hours.
6
anyone?
Anyone?
 
(someone)
(still typing)
 
sometimes i wish we had a "user is typing" thing but at the same time it is so peaceful not having it
 
12:25 PM
yah
indeed, so you know you are not alone
 
LDQ: I'm trying to write code to tokenize expressions for a lang im making, is this method salvageable or is it too Bad:
0. take code as a string, naturally
1. split on highest level parentheses ( "Foo(Bar)Baz" => "Foo", ["Bar"], "Baz" or whatever)
2. tokenize the parenthesized groups (this is a recur point)
3. if there are no parentheses (left) in the string, split on operators in (reverse) priority order and save the operator name ( "A+B=C" => [equals "A+B" "C"] => [equals [add "A" "B"] "C"] (also recursive)
problem im having: what to do with parentheses next to non parenthesized groups
 
implicit something?
for instance mult?
 
i guess mainly im having an implementation issue more than anything
 
0
Q: Find the closest swap

Wheat WizardTake as input two strings \$A\$ and \$B\$. Output a string \$C\$ that is \$A\$ but with two characters swapped such that the Levenshtein distance \$d(C,B)\$ is as small as possible. You must swap two characters and you cannot swap a character with itself, although you may swap two identical cha...

 
wait im dumb i forgot i was gonna rewrite it i already wrote plans XD
instead of splitting parens first, it splits on operators not in parentheses first
to properly do the "split in reverse priority order" thing :P
right that was my problem, i forgot since i wrote it so late last night
 
12:32 PM
um
 
implicit something seems like a good idea though
since there would still be like, "A+B(C)" which would split into [add "A" "B(C)"] and then what to do with "B(C)" would be ambiguous
since no operator
 
either, you can make B a function
or make it something implicit
for instance
 
functions sound scary to implement
 
you can say 3() is a function that either *3 or repeat a 3 lots of times
@thejonymyster which lang
 
no i mean like, implementing functions and stuff lol
 
12:39 PM
Am I ok to go and mass-add to a bunch of relevant questions?
or should I do it gradually?
I can't remember if it's true that tag edits don't bump posts
 
@thejonymyster in which lang
python?
i mean
 
@pxeger oh yeahhhh
 
@NobodyNeedsNames js but not because of js im just bad :P
@pxeger do one and see if it happens
 
I've just done two, and it appears not to have
but one of the ones I did do seemed to
Hmm, no, it seems like they are getting bumped
 
@thejonymyster well, python has a good lambda thing
and funcs are first class obj's
so good
 
12:42 PM
true itd probably be easier in python
im not ready to write a functional lang yet though :P
 
oohhh
what is it then?
 
not functional :P
i dont know the overarching language structure yet im mostly practicing, i wrote up a really badly designed language with a similar parsing structure lol
 
i mean, which type and kind of lan uum oh
 
but now im making it better
its just that previously ive only really wrote languages that are like... imperative "every char is an instruction" type langs lol
want to broaden my horisons
 
I think golflangs are all everycharoneinstrtype langs
 
12:54 PM
hm, to an extent
i guess i meant more like langs where each command is "do this to the state" and nothing relating to adjacent characters, maybe a set of brackets that do looping
 
or twochars and rarely threechar
 
think bf
so then new question: (incoming)
i want to regex search for a pattern so long as it doesnt occur within parentheses, how would i go about this? or what should i google :P
 
regex can't do that
most flavours, at least
 
right
so how can i prepare before the regex search occurs?
only idea im having so far is "find the spans of chars that are in parenthesis, save those ranges, find all matches for the regex, reject them if they occur within those spans"
but that doesnt bode well for the fact that i want to split on the matches
programming is so tragic guys
 
1:15 PM
Just lost 5 mins of my life before finding out that Gitlab’s master branch is now called main by default
 
1:41 PM
 
m90
2:35 PM
@thejonymyster If the parentheses aren't nested: to find xyz outside parentheses, use ^([^(]|\([^)]*\))*xyz.
 
3:27 PM
@m90 sadly they are nested but that is pretty neat, thanks
 
4:13 PM
@PyGamer0 Looks like feedcake?
 
yes
 
First thought: Do you need stdin? It's nice to be general-purpose, but if you're designing a golflang for CGCC use in 2022, we're usually pretty flexible about where you get your arguments.
Also, I dunno why you need a builtin for Catan numbers ;)
How much argtype overloading are you planning to have? For example, does F do something other than flatten if you pass it a number instead of a list?
 
4:29 PM
@DLosc flatten on a number, just wraps it in a list
i guess i will have argtype overloading like caird's fork
@DLosc i guess i don't need stdin
@DLosc because jelly has them :P
 
@PyGamer0 I think you'll find that Jelly has Catalan numbers ;)
 
oh lol
missed an al
updation done
why does updation not sound like an actual word
 
I was going to say "because it's not," but then I looked it up and found out otherwise.
For whatever it's worth, I would say "update" in this context.
 
Catan numbers lmao
 
You can find anything on OEIS
@PyGamer0 I see upper case and swap case but no lower case
You might also consider title case and/or initial caps
What do fold fixedpoint and scan fixedpoint do?
 
4:51 PM
@DLosc apply link repeated until a prior value is repeated
scan fp is just ^ but it collects intermediate results
@DLosc ok will add
@DLosc whatdoyoumean
 
5:20 PM
 
the word "munchkin" appears 14 times on that question page
 
5:39 PM
@PyGamer0 ATO
@pxeger I know it's spam, but I kinda want to say "flag for migration to Pets.SE" :P
@PyGamer0 Ah, makes sense.
 
LDQ: should i have a "keep alphabetic" or "is alphabetic" in Fig? either way I can do the other with 3 chars
 
Is alpha is more useful IMO
 
@Seggan I'm tempted to r/inclusiveor this, but I won't be a wiseacre. Do you mean you're going to have one of them and you're deciding which one?
 
yes
 
Yeah, my first inclination is to agree with Radvylf
though maybe that's just the Python brainwashing talking
 
5:49 PM
Is alpha is more versatile. While you can get it from keep alpha in 3 characters, and vice versa, you can also derive other useful operations from is alpha which you can't as easily from keep alpha
E.g., a keep-non-alpha operation would be way longer with is alpha than keep alpha
 
you mean the other way around?
 
6:07 PM
Oops yeah
 
LDQ: Is grade down actually useful?
I'm thinking grade up is enough
I've never seen grade down used...
 
What's grade down again?
 
Reverse grade up
Indices sorted by their value in descending order
 
@Steffan Seems like you only need one, and you can just reverse if you need the other
 
Exactly
I need to update my Chocolate docs. I keep procrastinating and they get out of date
Not like anybody uses them
LDQ: Useful overloads for subtract, multiply, divide, exponent? They should be actually useful to vectorize, optimally
 
6:15 PM
I'd vectorize the basic arithmetic operations yeah
Exponent can probably be overloaded though
 
No I mean useful overloads that are useful for vectorize. All five operations vectorize.
Aka str-num, num-str, and str-str
 
Oh, string overloads
 
yes
Multiply str-num will probably be repeat, but idk about str-str.
 
There really aren't any string dyads that aren't also useful on arrays
Ash just casted the strings to numbers for the basic arithmetic operators
 
6:45 PM
@Steffan me
 
7:05 PM
Okay but you and Steffan are practically the same person anyway :P
 
oh, that reminds me: I need to finish that challenge inspired by Steggan
also @Steffan i noticed your code for Chocolate is suspiciously similar to Fig's
 
@Steffan divide str str => split ("divide" string by string) ? :P
idk if thatd be useful but hey
i guess youre also free to not have it be related to the symbol :P2
@Steffan multiply str str => repeat string1 (length of string2) times
same for "repeat number length of string times"
so the order matters whether you want to multiply a string by a number or a number by a string? lo
 
@Seggan Imitation is the highest form of flattery
I actually find it somewhat similar to VyxalS but maybe we're both imagining things
Oh btw Steffan you can ping me if you want (mostly useless but maybe occasionally helpful) advice on Chocolate
 
I see an object Interpreter, interpret(AST), Oper (my Operator), the parser being a class
tho I have a lexer and he directly parses the chars
@thejonymyster i prefer not having the order matter, especially in a functional language where implicit input is at a premium
o also chocPrint is very similar to my figPrint
 
7:28 PM
@Steffan I was just thinking about arithmetic operators and strings this morning. What I came up with doesn't sound like it would fit your language, though, since it kind of assumes strings are 1D arrays of characters.
 
@thejonymyster I know, but would that make sense to vect?
@thejonymyster Yes I'm going to do that
@DLosc That's not true, strings are strings
 
@Steffan String-split vectorizes in Pip, and it's very useful.
 
@Seggan Nope, it's similar to Vyxal 3
Ok, I thought string split wouldn't be useful vectorizing
I didn't copy any from Fig lol
 
i didnt even look at vyx3 so I can claim i came up with it independently ;)
 
@Steffan I meant they would have to be character arrays for my idea to make sense. Which is why my idea probably wouldn't make sense in your language.
@Steffan One use case is if you have a multiline string, you can split on newlines and then split the result on spaces to get a list of lists of words. Without vectorizing split, you'd have to map splitting on spaces.
 
7:33 PM
oh ok
Split on newlines and spaces will be one byte tho
And vect
@Seggan the thing is I don't know scala very well so I had to look at vyx3
 
whyd ya use scala anyway?
 
why not?
 
> I don't know scala very well
 
anyway my chocolate docs are up to date now. online interpreter if someone wants to try it
 
@Steffan just wondering
scala is a bit too symbol-y for me
 
7:36 PM
I just like the language
 
and too many implicits
not judging you /shrug
 
I like implicits
Also, given isntances are really useful
Passing around context implicitly
Another thing: For modifiers, I can't think of modifiers that would take a monad. Everything just takes a dyad, but they need to do something given a monad too
 
compose with self?
in Fig, the lazy operator (my term for modifier) e takes an any arity operator chain and vectorises it over the last argument
 
LDQ: Is my lang interpreted or compiled? It works by creating an AST then transforming that into a JS function recursively e.g. + gets transformed into stack => stack.push(stack.pop(),stack.pop()), so the whole program becomes a giant function.
 
@Seggan I have Each which does that for nilads, monads, dyads, or triads
And filter will preserve arity
 
7:49 PM
mhm
 
There's swap for dyads
And dyad to monad by repeating argument
But I can't think of any monad modifier
 
@emanresuA interpreted
@Steffan do you have a spread/unpack modifier?
 
Interpreted
No, reduce works for dyads
And it will work for triads as well, probably
Normally you use reduce in golflangs
 
not reduce
something like python's f(*arg)
or Fig's u
 
That is reduce
Chocolate actually doesn't have functions
It's more like Jelly
Currently, tetrads don't exist, only up to triads.
@user yes lol I copied from VyxalS
or kind of copied
btw chocolate beat fig on fibonacci as well due to not having functions
 
7:56 PM
@emanresuA I'd call that "transpiled." (It's immediately interpreted, I assume, but it doesn't have to be--you could output the JS source to a file if you wanted to.)
 
I don't think you could output the JS source to a file.
A function is not a string
Idk tho
 
@DLosc no. its a function
unless you got a magical function -> string converter
 
JS is good at stringifying stuff.
 
func.toString() in JS will output the source.
 
wait waaat
still interpreted
 
7:59 PM
I don't know though, I wouldn't call it trnaspiled unless it's literally building the string and then evaling it
 
^
 
@Steffan Tomato tomahto, IMO
 
00:00 - 20:0020:00 - 00:00

« first day (4197 days earlier)      last day (645 days later) »