« first day (4006 days earlier)      last day (837 days later) » 

"RICKROWS ARE HONEST AND SAFE"
@cairdcoinheringaahing if GPT says it, then no need to ban rickrolls
 
"A good rickroll is a new person with a completely different set of ideas."
true enough
 
1
A: Covfefify a string

null!@#$%^&*()_+, 102 101 bytes pgtevkhijglmnobqrzdufwxys(*!@a_+&)(*!!@a_+&_^)$H_+&%(*!`_+&)+&@!@&@@ 42nd answer of this question, it looks like. Beats JavaScript for some reason. It took much more time than it should. I'm pretty sure there are still some simple tricks that I'...

Someone golf this to <99 bytes
 
0
Q: Tips for golfing in !@#$%&()_+

FmbalbuenaWhat general tips do you have for golfing in !@#$%&()+? I'm looking for ideas that can be applied to code golf problems in general that are at least somewhat specific to !@#$%&()+ (e.g. "remove comments" is not an answer).

 
@PyGamer0 @GingerIndustries Don't flag my message, please.
@thejonymyster sorry you can't get 2 rep by minor edits.
if you have 2.5k rep then you can do minor edits
 
3:19 PM
@Fmbalbuena spam is encouraged to be reported
 
@Fmbalbuena Your message was rightfully flagged because it was spammy. Please don't post spam.
 
oh, also. i've been working on a custom esolang that could theoretically be used for golfing
i want to keep the instruction set relatively clean and low level, so i'm open to feedback.
state-of-art documentation: esolangs.org/wiki/Dirac
 
is it implemented in malbolge? ;)
 
in C :)
but it compiles on DOS and other obscure systems/machines somehow.
i don't want to add useless/bloaty builtins, but i'd love to make the language at least a bit nicer to program.
i find it hard to keep track of everything on the stack correctly for some reason
especially when there's >7 elements and they're all something else. and functions need them all in the right order too.
 
@Fmbalbuena i didn't
 
3:33 PM
@PyGamer0 Hey, i have a question: How many golflangs do you have?
 
@Fmbalbuena 2
dinoux and flax
 
dinoux github?
 
@PyGamer0 05BA something?
 
05AB1E?
That's not made by PyGamer0
 
no?
oh, ok
 
3:39 PM
Let's say I have n slots and m of them have something in them. I want to add x items to the slots. Each item must go to it's own slot and at least 1 item must go to a slot that already has something in it. I don't care about the order in which they are added. How many ways are there to do this?
I think it's (n choose x) - ((n-m) choose x), but I'm not certain.
 
assuming x < n and n > 0 and m > 0?
@WheatWizard m * ((n-1) choose (x-1))?
 
n > 0: yes; x < m: no
 
@WheatWizard sorry, I got my n and m mixed up
 
x is less than n.
@pxeger This doesn't work, because it double counts them. Imagine that n=m and x is 2.
 
Can someone help me to write my golflang?
 
3:43 PM
each slot can only have one of the x items?
 
Yes.
 
Are the x items identical, or is there a distinction between (for example) [x1 m1] [x2] [ ] and [x2 m1] [x1] [ ]?
 
The items are identical.
 
where xi is a new item, and mi is an item already there
ok
 
Well the new items are distinct from the initial items I guess. We care about ways to add the items, not the final result.
 
3:46 PM
so we only care about which subset of slots has items added to them
 
We care about the set of slots we have added items yes.
@WheatWizard Or even more concretely n=m=3 and x=2. In this case you can put the items in any slots so there are 3 ways to do it. But your formula gives 6 ways. 3*(2 choose 1) = 3*2 = 6.
 
@WheatWizard How many golfing languages do you have?
 
My thought was, count the total number of ways to do it regardless of what is already there (n choose x) and subtract the ways to add them so no item is put in an already occupied slot ((n-m) choose x). But I'm not super sure this works.
@Fmbalbuena Zero.
 
@WheatWizard \sum _{i=1} ^{min(x,m)} ((m C i) * ((n-m) C (x-i))? Or should (n-m) be (n-i)?
 
Maybe ...
Hard to tell.
 
3:51 PM
@WheatWizard how?
 
It can be simplified
@WheatWizard hgl? I guess that's not really a language
 
@Fmbalbuena Golfing languages are a lot of work.
@pxeger Ok sure. I have ~0.75 golfing languages.
 
@WheatWizard Ok, how many languages do you have?
 
Depends on how you count for sure.
At least 5.
 
github links?
 
3:55 PM
I don't use github.
 
@WheatWizard gitlab?
 
I used to use github. It will have some projects on it probably.
About half I think.
 
Is there a reason you stopped using it?
 
3:58 PM
Microsoft.
I also like gitlab better anyways.
I was pretty happy when I made the switch.
I still use gitlab enterprise for work, and I find it a bit of a pain.
 
I prefer GitHub's UI to GitLab's, but in general I like GitLab more
the problem is just the network effect of everything being on GitHub
there's a lot of friction when using both at the same time
 
I generally don't have that issue for whatever reason.
I guess I mostly use git to work with my friends or on my own and do less of the forking / working with strangers stuff.
 
@WheatWizard Can BF transpiled to Unbalanced
 
I hardly remember anything about unbalanced.
 
I do
because I read the docs
 
4:03 PM
Ok I freshened up a bit. I don't think it's easy to transpile bf into unbalanced.
It's probably more like compile.
 
@WheatWizard You like making programming languages?
 
@Fmbalbuena no worries, i dont care about +2 reps, i just dont wanna clutter the comments with "hey make sure to escape this special character" or "change these letters to this"
 
@thejonymyster but you must do this, please don't do minor edits.
 
once again wishing edits were not tied to rep so this wouldnt be a problem
 
@thejonymyster Do you like 1k rep?
 
4:17 PM
Reputation is not like a prize or a badge, it's just "a rough measurement of trust". It's their choice if they want to do minor edits or not.
 
@mathcat ... i know
 
4:32 PM
> Sure, JS beats you up every day, but it loves you.
 
I have something exceedingly important to share
 
Is that the entire site?
Just that one big rat?
 
big rat
 
0
Q: Split along groups (hard mode)

Wheat WizardThis is an alternate version of this earlier challenge with a twist that adds a significant bit of difficulty. Like last time, you are going to be given a string containing some alphabetic characters along with [ and ]. Your task is to split into sections that are enclosed in a "group" created b...

 
4:46 PM
import sys
code_page = "|¬°!1\"2#3$4%5&6/7(8)9=0?'\\¿¡\tq@wertyuiopasdfghjklñzxcvbnmQWERTYUIOPASDFGHJKLÑZXCVBNM¨´+*~{}^`[],.-_:;<>éýúíóáÉÝÚÍÓÁèùìòàÈÙÌÒÀêûî"
code_page += "ôâÊÛÎÔÂ\nëÿüöïäËÜÖÏÄᐍᐎᐓᐗᎾᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴᏵᏸᏹᏺᏻᏼᏽᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎿᏀᏁᏂᏃᏄᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓ×ĀāĂ㥹ĆćĈĉĊċČčĎaĐ"
i=""
with open(sys.argv[1], 'rb') as file:
    code = file.read()
    code = "".join(code_page[i] for i in code)
# Golfing language interpreter
lines = code.split("\n")
arguments = sys.argv[2:]
dyadiccommands = {
^ sorry for long text, is this correct?
 
correct for what...?
 
for making a golflang
 
i mean assuming you only want to be able to read the code in raw bytes then it's correct
it's correct if it does what you want
 
5:04 PM
@mathcat reputation is a currency for purchasing bounties
 
is it cursed to do exports.fn = function() {...} and then in another part of that file call exports.fn(...)
 
exports.fn = fn = function() { ... } fn(...)
 
oh yeah
 
5:28 PM
Would function fn() { ... } exports.fn = fn also work?
 
I think so
 
I like the first even if it's a little more cursed
Not a fan of separating the definition and the export
 
The first one requires a const though
 
Oh :(
 
Is there multiline code support in chat?
 
5:41 PM
Yes, hit fixed font or indent with 4 spaces manually
 
Specifically, you first have to paste a multiline string or add newlines manually using Shift-Enter. Then the "fixed font" option will show up.
 
you can also press Ctrl+K, which doesn't require you to have entered multiple lines
 
class Token:
    def __init__(self, name, value):
        self.name = name
        self.value = value
like ^?
 
@pxeger TIL
I love how everything on the starboard in Sandbox is from TNB people
 
Anyone can star anything there :P
 
5:59 PM
@hyper-neutrino no, is my command good?
 
point still stands that if it does what you intended then it's probably good
 
@hyper-neutrino I have to do random challenge, find the most used command, add?
@user254217 Welcome to TNB
 
@cairdcoinheringaahing Aah, I see you've learned from me
 
@Fmbalbuena You've flagged to close a lot of stuff recently, and most of it has not been stuff that should actually be closed
 
6:17 PM
@taRadvylfsriksushilani wdym
 
I count at least three posts in the last couple of days that you've flagged as duplicates, and none of them actually were.
 
But I flag to close off-topic more than dupe
 
I can't see who flagged things as off-topic, so I don't know your stats on those. When you VTC (or flag-VTC) as a dupe, it leaves a comment though.
 
Reading over this answer again, I'm trying to remember if we have a clear definition of "the size [a function] contribute[s] to the program when added." For example, why does lambda x:x+2 in Python count as 12 bytes when you have to either assign it to a variable or parenthesize it to call it directly (+2 bytes either way)? I suspect this has been discussed already; does anyone remember where?
 
All that flagging as off-topic does is send it to the close vote queue, and usually those questions will already be there if they're new.
 
6:21 PM
Well, the function itself is just that, even if there's extra boilerplate required to use it
 
Yeah. Like arrow functions in JS, x=>x+1 is quite often useless without parentheses and/or an f=, but it's still allowed since x=>x+1 is the function, not (x=>x+1)
 
It's like in Java where x->x is perfectly fine as a lambda even though you need java.util.Function<Integer,Integer>f=x->x; to really do it
 
@taRadvylfsriksushilani I have 16 helpful flags (including duplicates)
 
I'm thinking about HBL specifically, where +.2 is a function that adds 2 to its argument IF it's on a line by itself. I think the Python example implies that the newline doesn't have to be counted as part of the function's bytecount, even though +.2 parses as something completely different without a newline (or '(...), which is even longer).
 
I think you'd be allowed to count +.2 as the function
Unless you consider the newline to be sort of like the word function or lambda
 
6:24 PM
@DLosc How to make a golflang?
 
I think our function rules kind of necessarily need to be interpreted in language-specific ways sometimes
 
I think we should be as lax as possible when making rules. Code golf's about having fun, and having lots of strict rules doesn't help that
 
Potentially complicating matters, +.2 by itself (with no newline) is both a function and a full program. But until someone implements a half-byte file system, WW's answer implies that it can't be counted as 1.5 bytes if it's a full program, only if it's a function.
 
I think we should have a consistent handling of functions and full programs for scoring
 
@taRadvylfsriksushilani It seems that way, yeah
 
6:27 PM
Either fractional bytes for both, or rounding for both
 
@Fmbalbuena You also comment on a lot of sandbox posts saying they're off-topic, but they almost all were on-topic
 
Personally, I support just allowing fractional byte counts for both functions and full programs, and that's it.
 
^
 
Just makes life easier for everyone
 
6:27 PM
One of the weirdest things is that when you have an anonymous function and some helper functions you need to count the newline for some reason?
 
waaat
 
@WheatWizard Which newline?
 
That's a rule?
 
That is how everyone scores their anonymous functions.
 
like this:
 
6:28 PM
What about languages where you also need other stuff between the anonymous function and helper function? (probably most languages) (sorry for interrupting you pxeger)
 
lambda:solve the challenge using helper
helper=lambda:do something else
 
@user I think you'd have to count that too, right?
 
¯\_(ツ)_/¯ I don't think the newline should be counted
 
it makes sense to me: you can prepend f=\​ to this submission, and now it works
 
Like, in JS: g=x=>x+1;y=>g(x)-1
 
6:29 PM
It's certainly a weird one.
 
Why wouldn't you have to count the ;?
It makes zero sense to allow splitting it into multiple functions and not count the separators IMO
 
because the separators aren't actually a part of the code.
 
I had a JS polyglot looking something like the following:
 
@WheatWizard Wait how?
 
I feel like an exception should be made for helpers and anonymous functions
 
6:31 PM
; is definitely a part of the JS code
 
That "code" doesn't do anything.
 
But so is the variable you're assigning the lambda to, and we don't count that, so why count the ;?
 
1//2; """
x=>x+1
//""";lambda a:a+2
 
@emanresuA "Wait how?"
 
this is proof that proton is superior
 
6:31 PM
@WheatWizard It separates the two functions. By that logic, most of the code I write does nothing.
 
@emanresuA I don't understand why?
 
The central function is impossible to access.
 
@hyper-neutrino Oh no, is this Lua-inspired?
 
@user no i just didn't see a point in making it error if two expressions are back-to-back
 
@taRadvylfsriksushilani Why does it separate them?
 
6:32 PM
@hyper-neutrino Lovely
 
What is the function of the separator?
 
Here's a single-function answer: ato.pxeger.com/…
If I need a helper, I can define it by appending directly to that program, with a newline between them: ato.pxeger.com/…
 
@WheatWizard To make the functions syntactically valid? If you could do it Proton-style and unambiguously put the two functions right next to each other, no separator would be needed.
 
In Haskell in fact most of my "programs" are not syntactically valid despite the separator.
 
Then aren't those invalid?
 
6:33 PM
No why would they be?
 
haskell answers are often of the form
 
Because they're...not valid Haskell? And it's a Haskell answer?
 
%1
x%y=x+y
 
The JS submission doesn't even do anything with the function. it just evaporates instantly.
 
@taRadvylfsriksushilani No it's not valid Haskell as a full program, but you can wrap it in stuff to make it okay
 
6:34 PM
@WheatWizard No, it evaluates to the function.
So you could do f=(g=...,x=>g(x))
 
@taRadvylfsriksushilani It doesn't need a separator to do that.
 
Explain how then
 
The point of an anonymous function is that you can call it from anywhere. You can embed it in legal code like any other function.
 
Yep, and with g=...,x=>g(x) you can
It just needs parentheses
 
@pxeger tbh it feels kinda like cheating to do %1 and not (%1) because you need it to turn it into a real function (right?)
 
6:36 PM
@taRadvylfsriksushilani But you just moved the function. Which proves that it's not connected to the helpers.
 
I moved what now?
 
You put parens around it.
 
Parens around the whole thing, yeah, but you need that even for normal JS function submissions
 
Noone scores their lambdas as (lambda x:...)
If I need to count a separator why don't I need to count a dummy main declaration? it's also required to make it a syntactically valid.
The idea is that the function is your submission. But you also need some other code for your function to work.
 
@WheatWizard Because the main declaration isn't part of your code. The separator is, because the things it's separating are part of yuor cpde
 
6:38 PM
I'm confused which side either of you are on
 
Why the two need a weird extra byte despite the fact that neither the boilerplate nor the function need it?
Really I think the consistent way to score this would be that all function declarations need a trailing newline.
 
That sounds like the worst of both
 
Because if I write f x=2+x then I write more code I need the newline, I can't just add more stuff on.
 
I'm actually not opposed to not counting the separator, after hearing y'all's arguments
 
@taRadvylfsriksushilani O_o
 
6:40 PM
If functions required an extra trailing newline then you could append two function definitions and it would be valid.
 
@DLosc Isn't this how a discussion is supposed to work? :p
 
but right now you can have a submission f x=2+x and you want to add new code to the end then you need an extra separator.
 
@taRadvylfsriksushilani Certainly; but I was just saying to myself "I agree with Redwolf's position" and then you changed your position, so I was rather flummoxed.
 
4 mins ago, by emanresu A
I'm confused which side either of you are on
 
"I'm playing both sides so that I always come out on top" - Redwolf
4
 
6:45 PM
No, I'm just not too stubborn to change my mind when the other side has good points:p
 
Be like Redwolf, y'all
Well, other than having cats and stuff
 
Okay, so my thoughts: A simple submission is one piece of code, whether that's a full program or a function. It seems straightforward to score a simple submission: just count the bytes. The difficulty arises with complex submissions, which consist of multiple things: either multiple functions, or multiple files (like Retina used to use), or code + flags.
This used to be pretty straightforward to score as well: 9 times out of 10, the score was the sum of the bytes of each piece, plus 1 byte for each piece after the first. But then free flags muddied those waters.
 
The "plus 1 byte for each piece after the first" feels a little arbitrary. Why 1 byte? Some languages don't need separators. Some need more than 1 byte for the separator(s)
 
Stuff like separators between files, or flags don't really make sense.
I think that we like to be "objective" but there is a lot of stuff that is secretly subjective or kind of arbitrary. I don't think that's wrong, at some level it is needed, but I feel like there might be some areas where we pretend or believe we are more objective than we are.
 
If you have a helper defined like g=... and an anonymous function x=>g(x) and your full program looks like g=...;print((x=>g(x))(1)), then why not also count the print((? Why only the ;?
 
6:52 PM
@user It does, and that wasn't exactly the rule. But if your language doesn't need separators, then you've just got one piece of code, see the simple submission rules. If it does, then I think having multiple pieces needs to be considered in the scoring somehow.
 
@WheatWizard I can't tell if "but I feel like there might be some areas where we pretend or believe we are more objective than we are." is just about CGCC or life in general :P
 
I think in general one thing that would be nice, and I think we have taken steps towards this, is to focus on making it fun rather than making it a perfect competition.
 
@DLosc Is there any real reason to penalize having multiple pieces, though?
 
@WheatWizard Can't agree more
 
How about a compromise: We have a "helper section" where you have as many helpers as you want and you count the separators between those and another section for the actual submission (the anonymous function). That way, people will have to count separators between helpers, but not have to add an arbitrary separator between a helper and an anonymous function
31 mins ago, by user
I think we should be as lax as possible when making rules. Code golf's about having fun, and having lots of strict rules doesn't help that
 
6:56 PM
@user The competitiveness argument would say that languages would go to ridiculous lengths to take advantage of such a rule; see, for example, Retina's original design, which required each line of the program to be in a separate file. Without the penalty for extra files, this would be tantamount to saying that newlines in a Retina program don't contribute to the bytecount.
 
No need to make people worry about little things. It's just 1 byte
 
I think that right now what we have works. It's a little strange and arbitrary, but it seems like it works fine and I would not want to go through the burden of rescoring like 40% of all submissions.
 
But the "don't worry about what other languages do" argument says that doesn't matter, so...
 
Personally, I've always considered "You can claim a score of X if you can write a full program or function in a language in X bytes (under some encoding) such that it does what the challenge specified" to be the fundamental rule of the site
 
How to update a github repo file?
 
6:58 PM
It's straightforward enough when you have a single function, but multiple functions that aren't full programs are hard :|
 
^
 
What if a newline counts as half a byte in your language?
 
Then probably you only score them half a byte.
 
@user I've generally considered it to be a bit of an extra cost of needing extra functions. Like, if you can't do it in one function, then the extra separator bytes is the "cost" of that
 
@DLosc Okay, I guess I see why that would be bad, but what do you think of the compromise I suggested above?
 
7:00 PM
What if a newline counts as 10^-9 bytes in my language?
4
 
@cairdcoinheringaahing Oftentimes, having to write def g(): is enough cost
 
@pxeger fun fact: print(int(10**-9)) gives zero in python
 
In my language, for all real ɛ > 0, a newline costs less than ɛ bytes
 
Is that just a fancy way of saying it costs 0 bytes? :P
 
It's arbitrarily close to 0 bytes :P
 
7:02 PM
It's just an arbitrary rule. What it does have going for it is that it seems like it's pretty intuitive. This is the first time we've had a discussion about it, I've never seen newbies confused etc. A lot of these other proposals while maybe less arbitrary are definitely more complex.
 
What if my program is 1.9999999999... bytes long?
 
1.99999... = 2
 
Then its 2 bytes long
 
@emanresuA I would love to see a computer that can handle fractional bits
 
I would love to see a computer that can handle rational bytes
 
7:03 PM
Any computer that uses trits.
 
Malbolge go brr
 
Remind me to never learn Malbolge then
 
@WheatWizard I think the current rule, while maybe not technically as fair as it could possibly be, is intuitive enough, simple enough, and close enough to fair that it doesn't matter and isn't worth changing the score of all past answers for. It's ok not to be perfect sometimes if the cost of perfection is too high
 
@user do not learn malbolge
 
> learn Malbolge
 
7:05 PM
@emanresuA How do you format those dots?
 
> quoted stuff
 
@user I agree for the most part (e.g. I'm very much in favor of flexible I/O formats); but the counterargument, and the reason why we have such exacting rules in the first place, is that some people who enjoy golfing 1 byte off a program also enjoy finding loopholes in rules, but other people don't find constant loophole exploitation funny.
 
> like this?
 
Yep
 
8 mins ago, by Bgil Midol
How to update a github repo file?
 
7:07 PM
@DLosc Fair enough, pretend I said "as laz as possible while preventing loopholes" or something else more lawyer-y :P
 
@BgilMidol What is a "repo file"? I've never heard this term in my life.
 
@WheatWizard a file in a repo
 
Using git.
 
I want to update all files in a repo
 
Ok, what does "update" mean here?
 
7:13 PM
@user This conversation reminds me of an essay I read once about how online communities often start with the idea of being a place for fun and self-expression without lots of burdensome rules, but eventually they all either realize they need rules, or they degenerate into a morass of trolling and flamewars that doesn't allow for fun or self-expression.
 
:(
 
I feel like we are on the downward arc of that trend.
 
Time to send all the trolls to the moon so we can have fun and express ourselves
 
@WheatWizard I uploaded a python file to github, and I made changes in pycharm. How to can sync the pycharm with the github? (Or set all files in a github to the ones in pycharm)
 
We ended up with too many burdensome rules and now we have to smooth out all the wrinkles.
@BgilMidol Using git?
 
7:15 PM
We all agree that we need rules, we're just trying to figure out where to set the needle on the strictness of those rules.
 
@WheatWizard yes
 
@BgilMidol You do git add <file>, then git commit -m "commit message"
 
You need to push too.
 
On subsequent commits, you can do git commit -am "commit message". And to actually send the changes to github, do git push
 
You should probably look up a git tutorial.
 
7:16 PM
link?
 
@DLosc It's easy, we start off making super strict, execute anyone who doesn't follow them, then remove all rules because we know the people who followed the early rules are okay :P
@BgilMidol google.com
:P
 
@user More specifically, google.com/search?q=git+tutorial ;)
 
It's better if you just lookup tutorials on your own and just pick the one that fits your style best.
I refuse to believe that either of those links is not a rick roll.
 
@WheatWizard Believe whatever you want
 
You are missing out on the most awesomest links in the history of mankind just because you choose to stay afraid
 
7:44 PM
@BgilMidol I know a great one
(not a rickroll btw)
 
Fwiw, I think we should ban rickrolls.
 
Pulled an SE there, linking to rickroll with the text "rickroll" :P
 
7:59 PM
Yeah loll
 
@user SE?
 
0
A: What are the hidden features of Stack Exchange?

A usernameThe rickroll link on the declined flags help page is an actual rickroll

 
8:15 PM
Ah, I see. Note that such links are not Rickrolls, because Wikipedia clearly states that
> The meme is a type of bait and switch using a disguised hyperlink that leads to the music video. When victims click on a seemingly unrelated link, the site with the music video loads instead of what was expected, and they have been "Rickrolled".
 
@Adám QuadR vs QuadS?
 
I'm sorry, I don't understand what you're asking. Can you try phrasing it as a whole question?
 
Which is better golflang? QuadR vs QuadS?
 
It depends very much on what you're doing. If the main task involves replacing text, then I'd recommend using QuadR. If the main task involves searching for text, then I'd go with QuadS. It is easy enough to remember which one is better for which task. QuadR — R as in Replace, and QuadS — S as in Search.
 
QS will replace to nothing?
 
8:22 PM
No, it will find all the matches for one or more regexes.
 
are either turing complete? doesn't sound like it but i've seen weirder
 
Yes, they are supersets of Dyalog APL.
 
They can execute APL iirc
 
Which means they can also shell out and execute any other language, or for that sake go online…
They are superficially similar to Retina.
@Fmbalbuena Are you familiar with Dyalog APL's ⎕R ("quad-R")and ⎕S ("quad-S")?
 
oh wait i thought they just called ⎕R / ⎕S
like, i thought they were subsets, not supersets :P
 
8:30 PM
Yes, my three golfing languages, QuadR, QuadS, and Stencil, are thin covers for the Dyalog operators ⎕R, ⎕S, and , all of which are subsets of (and equivalent to) Dyalog APL. Since the languages add a bit of interfacing on top, they are supersets.
 
oh, okay, that's cool
 
All APL operators are equivalent to the whole language because they can execute arbitrary code.
 
wait, they can?
 
Operators?
 
oh wait operators, not functions. oh, mb, I thought ⎕R/⎕S were functions lol
 
8:39 PM
like map and reduce?
 
eval == JavaScript because it can execute arbitrary code
 
but is eval === JavaScript?
TIL = in italics looks the same: = =
 
@Adám No
@pxeger is a function that takes a function and any number of arguments
 
@pxeger Yes.
 
Can they take a string and evaluate it, rather than taking a function, or something?
 
8:48 PM
Some can do that, others can take the evaluation function and apply it to a string. E.g. '\d+'⎕S{⍎⍵.Match} will return a list of numbers, by evaluating all digit sequences it can find.
 
Huh
APL is often surprising
 
Sure is neat, though:
      '\d+\W\d+'⎕R{⍕⍎⍵.Match}'How much is 2+34 and 45×6?'
How much is 36 and 270?
 
@pxeger I mean, a tilted equal sign would look really weird
 
Well I thought maybe the bars would be offset a bit (although still parallel and horizontal), like:
 
@Adám Wait, all?
 
8:57 PM
  ____
____
 
Including stuff like and @?
@pxeger Oh yeah, I guess that would work
 
@user Yes, as e.g #∘⍎ and ⍎∘⊢ and ⍎@1 etc.
In fact, I once found a bug in @ because I was doing something like this.
 
oic
I thought you could use the operators themselves without to do eval
 

« first day (4006 days earlier)      last day (837 days later) »