« first day (2391 days earlier)      last day (2747 days later) » 

22:09
-request for Proton anyone?
const or final in Proton?
@HyperNeutrino hmmmmmmmmmmmmmmm
command chains :P
@HyperNeutrino const imo
or short builtin names at least
final sounds stupid
ok
final is also Java
@ASCII-only what is command chain
22:14
yes and java code often sounds stupid :P
:P
"workers.contains"
liek seriously it should be "workers.contain"
@HyperNeutrino chr . ord . x instead of chr(ord(x))
or just "in workers"
i think that's what command chains are
isn't that function composition
22:15
@HyperNeutrino ... what.
@totallyhuman ^^
oh
nvm me then
that's also a cool feature though
besides, it should be x | ord | chr
@totallyhuman well you can't exactly do that
@HyperNeutrino why not x :> ord :> chr
@ASCII-only why not?
22:16
@ASCII-only maps
@totallyhuman because . is property access?
it's used already
^^
@ASCII-only oh that was a placeholder
@HyperNeutrino wait :> is used already?
yup
dicts look like [key :> value, key :> value]
22:17
@totallyhuman but that's what every language uses for it
@HyperNeutrino ... why
lol
it looks weird ik but ¯\_(ツ)_/¯
why not do it the sane way
too bad there are so few brackets
@ASCII-only because {} is also used
@HyperNeutrino ... so?
I'm not sure it would be easy to double the meaning of {} for both codeblocks and maps. I'm sure it could be done but I'm too lazy :P
22:18
do you have sets then?
just use set(...)
@HyperNeutrino ... Of course it's easy
depends on if the parser's set up correctly, which I doubt mine is
what do you use for your parser?
22:21
@Dennis do you mind helping me out on a math question I had?
something similar to a regex engine
Also oops forgot to add colons in parser fixed now
@HyperNeutrino you what.
@ASCII-only I mean if that were the sole use of it it would be easy
@ASCII-only you're not the first to disapprove
o
I'll have to try that then
sometime soon. I have implemented dicts already so I'll do it later today :P
I want to add const first
22:23
Well really it depends on how your parser works, if you can't do that you really should rewrite it :P
@Dennis wait nvm I'll just ask it on math.se I forgot that existed
@ASCII-only you know I really shouldn't, but I kind of want to rewrite Proton to fix some major issues with it... but I mean, Proton was meant to be a rewrite of Positron and I ended up making a new language, so...
@HyperNeutrino Why shouldn't you
@Maltysen >_> TNB exists too
@Maltysen As you wish. Assuming I can, I don't mind helping you.
@ASCII-only I've made too many programming languages already and they're all bad ;_;
22:25
@Dennis oh ok. I'll try u first i guess
then again, the more I write, the less bad they get lol
@HyperNeutrino :| I only have one
What would you expect a library with the namespace inb4 to be?
I made (Practical) Positron, Proton, (Recreational) Ceres, Paintbrush, Anyfix, PostL
PostL is impossible to use for most things
@PatrickRoberts Inject methods before events are called :P (before-event hooks)
22:26
Anyfix is really long and is like Jelly but without as many commands and with way less golfability
Paintbrush is an ASCII-art language that is about twice Charcoal's length consistently
@Dennis So I was wondering how the jacobian plays into calculating the size of area elements embedded in >2d. The motivating example was surface integrals where you do |dr/du x dr/dv| which if it was a 2 var->2var mapping would be the jacobian, but since its u,v->x,y,z the jacoiban ins't square which means you can't calculate the determinat
@HyperNeutrino O_o Positron is practical too
@ASCII-only it was meant to be :P
@HyperNeutrino :| Apparently Charcoal is nowhere near as golfy as it can be
22:28
@Maltysen No clue, sorry. I'm afraid I'll have to defer you to one of SE's math sites.
@Dennis the cross product works for 3d, but how do general tools like the jacobian determinant work if it isn't square. The wikipedia page for en.wikipedia.org/wiki/Volume_element even says "the volume element changes by the Jacobian of the coordinate change"
@Dennis oh ok
Oh also @anyone what would you call list = list.map(element=>element<operator><constant>) and list = list.map(element=><constant><operator>element)
@Dennis Thanks anyways
@ASCII-only prefix operator functions and postfix operator functions?
Well shoot
22:30
@ASCII-only element-wise operation
I was making a challenge and I found out it was undecideable
The internal type of something like 2+ or /2 in Proton is prebinopfunc (prefix binary operator function) and postbinopfunc
@ASCII-only Call it an "atop" :P
@HyperNeutrino if they were a function what would you call them
22:31
@ASCII-only no, this is exactly it, but I can't understand anything hes saying after "But of course I can't do this since the Jacobian is not square."
what the heck is a pull-back
@ASCII-only operator function? or something like that
not sure
@ASCII-only in MATLAB, the syntax for an element-wise operation on a higher-level datastructure like a vector, matrix or tensor is structure .<operator> <constant> and <constant> .<operator> structure respectively
@Maltysen Oh this may help?
0
A: Sandbox for Proposed Challenges

Challenger5Detect Ambiguity in a Context-Free Grammar code-golf decision-problem grammars Sandbox notes: Is the background too hard to understand? If so, should I clarify it further at the risk of making it unreasonably long, or simply delete it and state that the reader should have a knowledge of conte...

22:35
@ASCII-only oooooh that's it thanks so much
@Challenger5 BTW for Charcoal addition should be vectorized too right?
Probably.
When you have your own codepage (and therefore many bytes/builtins at your disposal), then overloading takes a backseat to generality.
Proton now has const :D
uh oh BORK ALERT 🚨 BORK ALERT 🚨 BORK ALERT
um should const a, b = 1, 2 set both a and b to const?
22:55
Yes
huh this may be slightly tricky
should a = 0; const a; also do the same or should that not be allowed?
@HyperNeutrino Yes otherwise confusion ensues
@HyperNeutrino Nooooo
@ASCII-only ok good :3
22:59
@HyperNeutrino Don't allow declarations after definitions
k
I won't allow const a; a = 2 either then
Also function arguments should be const by default unless explicitly specified
nah I'd say not
@HyperNeutrino that should error
23:19
I have to figure out how to make a better triangling algorithm
actually I think I'll just adjust the current one
23:38
@HyperNeutrino yes definetly
@HyperNeutrino also I please make const actually consts and not just immutable references
A syntax error is a wasted opportunity.
@ASCII-only btw can you change a = 1 to AssignmentExpression and also ensure only lvalues are on left-hand side
or are lvalues all PropertyExpressions
wait
proton has unless?
no wonder it reminded me of some other language
ruby
@ASCII-only btw should we throw warnings for errors (that won't actually break though)?
23:44
example is through branch checking we can analyize the domain and if there is a 100% value fallthrough we know that it won't meet the condition for the error in runtime but it could still be error
@ATaco assignments in expressions? c'mon
Assignments should always be allowed in expressions.
^ yes
bleaugh no
But then you can do x = y = 3
23:45
what practical language would be crazy enough to all— oh right python
^^
also then say bye to for(;;) loops
it's good for golfing but horribly confusing in actual code
that is (very) false
trying to think of way to quantify confusion
while (x=get(i++)){}
is fine
got it
@totallyhuman probably not that confusing if you know the language
23:47
@Downgoat what is an "actual const"
Realisticly, Programming is confusing.
I mean [0 for i in z] probably looks gibberish to someone who doesn't know python
@HyperNeutrino meaning you cannot mutate any field/value e.g. const foo = ...; foo.bar = 123 would be invalid, exception is:
o huh I'm not sure I'd be able to do that
let a1 = A()
let b = B(ref: a1)
a1.value = ...
23:48
Does proton have Macros?
I mean obviously I can but not necessarily without modifying the underlying identifier structure
@ATaco no
@Downgoat python does not allow assignments in expressions, only chained assignments, which aren't actually confusing
:(
@DestructibleLemon no one said anything about chained assignments being confusing? (not sure what you're bringing up)
4 mins ago, by Downgoat
what practical language would be crazy enough to all— oh right python
I don't see how it is crazy at all
23:49
no python doesn't do allow assignment in expressoin
well you communicate unclearly
so there
Lua doesn't allow assignment in expressions either, it makes me sad.
@DestructibleLemon thanks for the tip
@ATaco why is this needed
x = y = 3
23:51
again, that is different
@DestructibleLemon for(let i = 0; i < array.length; i++) { ... }
while x = get(i = i + 1) do end
@ATaco this is why python is good
while (line = readline())
chained assignment and assignments in expressions are two totally different beasts
23:52
@Downgoat oh so like a for i in range(len(array)):?
@totallyhuman no true pythonmen eh?
Not necessarily, chained assignments can be implemented via assignments in expressions.
@DestructibleLemon I'm not asking on how to write a loop in python
@Downgoat then why is it needed
It's never needed.
23:53
@Downgoat what?
If we only cared about what was needed we'd be writing assembly with punchcards.
> No good python program would need expression in statement
I think you just like the ability to link to the no true scotsmen thing
Totally human was saying chained assignments and general assignments in expressions are different
@DestructibleLemon the ability to copy paste is fascinating
23:54
That fallacy does not apply here
Assignments in Expressions is just a nice thing to have, and there is, most importantly, no reason not to have it.
this is a textbook example did you read the page
imo, the reason not to have it is confusing code
If you think it's harder to read, then don't write it.
right, but what if i have to read somebody else's code
23:56
Readable code doesn't exist, only readable comments.
^^^ if you are just learning how to read loops with assignments inside them it might be difficult to read such a program but c'mon
do you know how many times I have accidentally typed one equals sign instead of two?
no, but I have never had that mistake ¯\_(ツ)_/¯
AutoHotkey uses a single equals to match equality.
@ATaco err, what language are you defending?
23:58
I mean, not that many, but I am easily able to get it corrected because my IDE notices
I'm not defending it.
'cause most languages don't use a single equals sign
it's the worst idea, but that's because AutoHotkey wasn't designed to be a language.
s = 3
if(s = 3){
	MsgBox Why is this correct.
}
I feel like an expression should just be an expression
23:59
ouch
By the way, s set to a string in that case.
not an assigning things as well
@DestructibleLemon ... And assignment is an expression
To set it to a number, one must do s := 3
Pls stop discriminating :P
23:59
@ASCII-only it's a dumb expression
I think this is the worst thing we've argued about.
@DestructibleLemon but luckily, either way, python'll throw an error in your face

« first day (2391 days earlier)      last day (2747 days later) »