« first day (659 days earlier)      last day (1998 days later) » 

9:00 PM
most fonts, like the one here, without glasses I barely see the curly on the curly brackets
 
@nathanrogers then change the editor/color scheme
 
it looks almost square enough to be square brackets, and almost round enough to look like ()
I do
often, and I still haven't found the right combination
 
uh... sorry, but I don't think we can help regarding your own preferences
 
that's fine. again, we're digressing from the point of the goal of universality in notation
 
RIDE allows changing the themes of the different bracket types for example
 
9:01 PM
APL/W too
 
I'm using vs code most often for apl. it's awesome, and the material themes and font ligatures are glorious
 
@nathanrogers IMO a little trade-off from universality to descriptive code is good
 
@nathanrogers ligatures in APL?
 
what I'm saying is that losing universality causes mental hiccups when interpreting code
 
9:03 PM
maybe you're not used to APL
 
@dzaima there are ligatures that combine things like +/ and :[ and >. and that sort of thing, so accross J,APL, and K there's quite a few
or maybe I'm not used to J in my APL
 
@nathanrogers ah, you mean for non-APL langs
 
no I mean in general, there are quite a few ligatures
it improves spacing between characters
and combines characters into bolder more obvious connected characters
 
actually, APL doesn't quite need that sort of converting to ligatures
for example, ≤ is , not <=
 
I get it, but again
just look at the pictures
 
9:05 PM
@nathanrogers +/ converting to a ligature doesn't seem that useful. Spacing I like to do myself, no editor can ever space things like I want
 
One thing I would like to see is a syntax colourer that puts boxes around operators and their operands. Maybe not as far as this but in that direction.
@nathanrogers What picture? Can you show me an example of how it improves APL?
 
@Adám he probably means the pictures over the GH homepage, which are totally unrelated to APL
 
@dzaima right, E.g. I wouldn't want ÷∘+/ to show up as ÷∘ +/
 
I pasted a link and the readme has pictures
 
yeah, those pictures don't apply to APL
 
9:07 PM
except the spacing
which I mentioned specifically
 
@nathanrogers Show me an example!
 
@nathanrogers it's not losing universality completely, it's trading a bit for a whole new way to write short functions in the cases where it makes sense. And you decide when it makes sense.
 
but how is that related to APL?
 
the spacing....
 
9:09 PM
@nathanrogers Mashing <+> is terrible!
 
type in a train and see how it looks
 
except that separate functions should be clearly separate
 
but then you'd rather use a train over a non-train....
 
I can see mashing ## and :: (which is does) and ⍺⍺ and ⍵⍵ and ∇∇ being useful, but that's it, and only because those are exceptional biglyphs in APL
 
functions that are separate should clearly be separate, by explicily passing the argument to the function
 
9:11 PM
@nathanrogers So you'd rather write NegSum←{{-⍵}{+/⍵}⍵} than just NegSum←-+/
 
what's wrong with {(-⍵)+/⍵}
 
@nathanrogers it has many unnecessary things. Also it's wrong :p
 
or the minimum amount of things to be direct
why
 
@nathanrogers the in {-+/⍵} is pointless and doesn't tell me anything about what the function actually does.
 
the ⍵ there is the argument
 
9:14 PM
@nathanrogers Wrong because it will evaluate -⍵ and use that as left argument to +/
 
@nathanrogers and explicitly writing it is pointless.
 
no it isn't. omitting it is pointless
algebraic notation doesn't omit x's and y's in f(x)'s
 
@nathanrogers it just wastes space & shouldn't get read ever.
@nathanrogers that's.. not an argument.
 
yes it is! considering that everything about the notation of APL was designed around algebraic notation!
 
@nathanrogers But it does in ±
 
9:15 PM
how is "negate sum of omega" better than "negate sum"?!?
 
@nathanrogers Not around; to be better than!
 
I mean, this is the entire premise upon with APL's design claims to be based
 
@nathanrogers please inform me of why the there is useful and gives me information I couldn't otherwise gather from -+/
 
I mean, I'd take it a step further and ask why × exists... because, notation
because to what does -+/ refer to summing?
not a thing
it is a series of symbols that have no meaning without context
 
@nathanrogers it doesn't refer to a specific thing - it lets the caller decide
doesn't refer to a specific thing either you know
 
9:19 PM
but it represents the thing that it will be
which is what variables are
they represent potential values. in trains, those potential values don't exist. where the values belong and in what order is not inferrable without INCREASING THE MENTAL LOAD
 
@nathanrogers you know that tacit programming is a thing, right?
 
which as quoted a few times in this converation thus far flies in the face of APLs design philosophy
> By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect increases the mental power of the race.
read this phrase
"The horse ran past the barn fell."
A garden-path sentence is a grammatically correct sentence that starts in such a way that a reader's most likely interpretation will be incorrect; the reader is lured into a parse that turns out to be a dead end or yields a clearly unintended meaning. "Garden path" refers to the saying "to be led down [or up] the garden path", meaning to be deceived, tricked, or seduced. Such a sentence leads the reader toward a seemingly familiar meaning that is actually not the one intended. It is a special type of sentence that creates a momentarily ambiguous interpretation because it contains a word or phrase...
trains are the equivalent of this in english
 
The function = alone is read as "equals" not "left arg equals to the right arg", why shouldn't the case be the same with user-defined functions?
 
sentences that are technically correct, but require backtracking and reorientation to fully comprehend
that flies in the face of a consistent universal notation that is bent on relieving the brain of all unnecessary work
They're clever, but dumb and bad
equals what?
x = y is read x = y
There is no ability for anyone to infer what is equal without stating the equality!
 
@nathanrogers So why read {-+/⍵}a as "negate sum of omega, called with a"?
 
9:23 PM
because that's dumb, write it -+/a
if you need a function f←{-+/⍵} makes sense
 
@nathanrogers And then I move the -+/ out to a variable, and bam, f←-+/
@nathanrogers why change the way to write & read -+/ based on context?
 
I'm not negating the value of f g h. I'm arguing fervently about the f g h i j k l alkjasd foaih giowrbunoeurghlakiwehflaiuhryf that it eventaully leads to
you aren't
you're keeping it consistent
-+/ what
-+/thing
 
@nathanrogers and I've been saying all this time that f g h i j k is horrible.
 
that's fine
but the existence of f g h enabls aofviuahoieuhewoasdfga
if it didn't exist, neither would the latter
the logical conclusion of universality is that all code is intelligible
the logical conclustion of trains is qoasfhdiauhvpoaBIOVRWOAVNO;IRFJDA;LKRSDJFA;LSEHFiaudH;lJ:LkHLIUGHF;OAEILRJG
 
@nathanrogers 1 2 3 4 5 6 7 8 9 10 11 12 13 also exists, should it not be allowed to make an array of consecutive integers because ⍳13 is better?
@nathanrogers no.
 
@nathanrogers how the hell is jelly related?
 
we're talking about tacit programming
 
pretty much everyone agrees that Jelly is unreadable.
 
Jelly is a very bad example
 
because it has no means of explicitly definiing the positions of arguments!
as I said, it's the logical conclusion of trains
 
9:27 PM
@nathanrogers and it doesn't, because it's trying to be golfy NOT be readable.
 
if you remove arguments, and where they belong in an expression, then you remove all intelligbility
 
@nathanrogers disagree.
 
trains are attempting to accomplish the same thing
 
disagree.
 
I mean, disagree with Ken Iverson all you want
he probably did too by the end of his life
I don't understand how trains leads to anywhere butakvjhabliuhweliauhr;taljie;hotj because that's all I see when I look at them
 
9:29 PM
@nathanrogers that means you're either looking at golfed code, or haven't properly learned them.
 
and it flies against the consistency of the notation, leading to further cognative load, along with the Garden Path sentence syndrom I spoke aobut earlier
The old man the boat.
The complex houses married and single soldiers and their families.
 
@nathanrogers That's not even true. For years, Iverson struggled to find a neat way to express what in conventional mathematics is written f+g. He experimented with letting every scalar function have a companion operator which combined two functions by applying the corresponding scalar function to their respective results. He added one operator per function by adding an overbar to its symbol. E.g. + had such that f∓g ⍵ was (f ⍵)+(g ⍵). Finally, on a plane, he got an amazing idea: f+g
 
look, english trains
i mean, why didn't he just use +. since there wasn't yet a + that existed which took functions as left and right arguments?
 
@nathanrogers That's the english equivalent of f g h i j k l. I too agree that those are horrible. Not all trains are nice, but some certainly are.
 
https://en.wikipedia.org/wiki/Garden-path_sentence

english trains which tacitly refer to the subjects indirectly and through context!
which require mental backtracking, reorientation, and recontextualization
 
9:32 PM
@nathanrogers How could as single symbol be both a function and an operator?
 
because function and operation is a concept that requires no distinction and was invented in APL for some reason?
what is an operator if not a higher order function?
which we already have a name for
 
@nathanrogers Not true. The (traditional) mathematician Oliver Heaviside came up with the terms APL use today.
 
It's still an arbitrary distinction
 
@nathanrogers Without it, you need special syntax to distinguish function application and passing a function as an argument.
 
or consider it a standalone form. + with functions as arguments means something than + with integer arguments, means something different from + with only a right argument
 
9:37 PM
@nathanrogers f g h i j k is horrible. f g h isn't. Sure, there are cases when even that is unreadable, but IMO avg←+/÷≢ is way more readable than avg←{(+/⍵)÷≢⍵}.
 
f g h enables f g h i j k
it's existence encourages that kind of thinking
 
@nathanrogers How would you pass functions as arguments? -+÷ 5 is already - (+ (÷ 5))
@nathanrogers NO IT DOESNT
sorry
 
it certainly does. as can be seen by any answer that comes through here about just about anythign
 
@nathanrogers It ends up very ambiguous: Is ×+÷A equal to (×A)+(÷A) or ×(+(÷A))?
@dzaima You ninja'd me.
 
1 2 3 enables 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20, so should 1 2 3 not be allowed?
 
9:39 PM
no because one is necessary
trains are merely additional forms to something that is already expressable
 
@nathanrogers 1 2 31,2,3
 
I can't express 33 723 229748234 247389 274389 42798 234789294837 249387 any other way
 
@nathanrogers 33,723,229748234,247389,274389,42798,234789294837,249387
 
yes, but that's nonsense
values in lists are space separated
wut
i can express f g h i j k l m n as a normal expression
which is consistent with the rest of APL
 
@nathanrogers so is {(f ⍵) g (h ⍵) i (h ⍵) j (k ⍵)}, which, tacitly is just f g h i j k (but even that I'd call bad)
 
9:41 PM
@nathanrogers No. (1)(2)(3) and 'abc'42'de' have no spaces.
 
dzaima
no it isn't
 
@nathanrogers yes it is
 
it's minimally direct
 
@nathanrogers f g h i j k is even more direct
 
it's the least amount of notation that you can have and specify the operations and their inputs
no it isn't
as noted several times it requires backtracking, and reorientation
it requires first misinterpreting the phrase, then reinterpreting the phrase
 
9:42 PM
@nathanrogers You don't need + to have addition either, it's replacable by a- -b
 
and recontextualization
you're just ridiculous
 
@nathanrogers it doesn't for me, if the train is well organized
 
these arguments are completely logically inconsistent
 
@nathanrogers Just because you have a hard time interpreting it doesn’t mean everyone does
 
a- -b is not conecptually the same as a + b
just because you can interpret it easily doesn't mean that it's good
I can interpret all kinds of broken english
 
9:44 PM
@nathanrogers same with long trains!
 
doens't mean that it's grammatically constistent or sound
and short trains
 
@nathanrogers that's where I disagree.
 
you're welcome to
my point is that it's disagreeing with the founding tenants of APL from what I can gather in my understanding of APL
 
do you really prefer {(⍺+⍵) , (⍺-⍵) , (⍺ × ⍵) , (⍺ ÷ ⍵)} over +,-,×,÷?
 
it's a clever trick, that by merely existing obfuscates otherwise simple code
actually, I would prefer the same thing without parens
but at least the parens are notationally consistent
 
9:45 PM
@nathanrogers but it can't be written without parens
 
I know that
 
trains are notationally consistent too you know
and please don't post garden path sentence wiki again
 
@nathanrogers You would probably be happy in old-APL land with no train or function compositions. You can write anything without or too.
 
But the horse ran past the barn fell. you must not like horses
i don't have a problem with ∘
why would you think that?
 
@nathanrogers a clean, well-spaced, not too long train is as clear as any regular, non-garden path english sentence.
 
9:49 PM
and I'm left wondering "what am I adding?? to what? and which am I dividing? rotate what???"
instead of knowing that expressly
mental tacit programming
 
@nathanrogers it doesn't matter in the definition of the function. Knowing that you're adding to x is no better than not knowing what you're adding to
 
it's writing code without explicitly reading the arguments
i mean, it really does
 
@nathanrogers you're saying trains are horrible because they're always replaceable with dfns, and are also always replaceable with dfns/parentheses
 
Why do we use words. Let's just emoji chat
after all words are just long boring emojis
 
@nathanrogers emoj.li
 
9:51 PM
why would I need to read those pesky words
 
it may be frustrating, but with practice it will make sense. Trains follow a set of logical intuitive rules.
 
who cares, my emojis mean different things depending on context
 
@nathanrogers the calling context.
 
@Quintec it isn't frustrating, it's logically inconsistent. Bending your brain over backwards to justify nonsense leads to frustration. it says so on the box.
 
It’s not logically inconsistent af all.
 
9:52 PM
@nathanrogers "sum divided by tally of 1 2 3" doesn't seem logically inconsistent to me at all
 
but it is, as I've mentioned several times, what with the Aurthur Whitehead quote, or the garden path sentences, or the other links I've mentioned
it's very inconsistent with reducing cognative load, plain universal notation without special forms or the need to recontextualize
it really is inconsistent with the values that arise from the design of the language itself
 
@nathanrogers garden path sentences are the equivalent of horribly written trains, how many times do I have to say that
 
That makes no sense. Just because you don’t understand it doesn’t mean it’s inconsistent.
 
^
 
just because you understand it doesn't mean that it is
lots of people perfectly understand complete hogwash
they call it Java
 
9:54 PM
Who said that I understand it
 
@nathanrogers java is very, very consistent imo.
 
@nathanrogers The values don't arise from the design of the language. The language was designed according to a set of values. Iverson's specifically. Oh, and he came up with the fork notation as a generalisation (like so many other APL features) of the already existing mathematical notation f+g.
 
@dzaima fine c++ then
 
Java is as consistent as can be, that’s why it’s so verbose
@nathanrogers same goes^
 
@Adám yes I know he came up with it.
c++ is consistent?
read the stl
 
9:57 PM
@nathanrogers can't comment cause I don't really know c++, but it's definitely not nearly as consistent as java
 
@Adám that's why I said I'm sure he was arguing with his younger self later on
 
@nathanrogers some things just are nicer when written differently.
 
@Quintec look at any 2 C++ code bases, or better yet just look at any highly voted stack overflow article for C++
 
You even earlier said that 33,723,229748234,247389 is nonsense compared to 33 723 229748234 247389, while both mean the exact same thing. Why is the latter better than the former at all?
 
@dzaima I'm fine with that, until it leads to more than a fork, then it's nonsense. forks of forks of atops of forks are forking rediculous, and they only exist because the fork exists
because its internally consistent
because the one thing only ever means the one thing
 
9:59 PM
@nathanrogers f g h i j is also consistent
 
1,2,3 will always = 1,2,3
no it isn't
 
@nathanrogers (f g h) only ever means (f g h)
 
@nathanrogers Actually, J (which was Iverson's attempt at overhauling APL to make mistakes right) started off as explicit by default (like APL) and tacit by request, but Iverson then changed the default to tacit and make explicit requestable. It doesn't seem that he ever regretted that. And that's making tacit the default!
 
where are the arguments and in what order are they applied?
 

« first day (659 days earlier)      last day (1998 days later) »