« first day (91 days earlier)      last day (2778 days later) » 

 
9 hours later…
21:54
@Adám What's =+/⍳
@Dennis I think that the obvious thing for you to do now is teach your daughter Jelly.
@Phoenix But Jelly uses Latin letters. Also, Jelly is a little less promising when it comes to career and applying the skills in school math.
@Dennis Maybe teach her J? But again, J uses Latin letters, and the "symbols" are much less mnemonic than APL's (if you don't know APL).
I don't know APL, the symbols make no sense at all.
@Phoenix Which ones do you have in mind?
@Phoenix and reverse or rotate horizontally and vertically. is transpose.
@Phoenix is take (n first elements), and is drop.
22:00
Drop makes sense
@Phoenix ? is random numbers.
@Phoenix < ≤ = ≥ > ≠ ≡ ≢ are what you think.
Why is range
@Phoenix is Greek equivalent of i as in indices or index. (Which is why it is i. in J)
@Phoenix and are ascending and descending grading.
It makes sense if you know APL
@Phoenix * is to-the-power-of; is its inverse, log, which looks like a slice of a tree log.
@Phoenix ∧ ∨ and or; ⍲ ⍱ nand nor.
× ÷ are the proper symbols like found on a calculator.
is matrix division/inversion.
22:06
/ is map?
@Phoenix reduce
But +/ is total.
if / is reduce, then +/ meaning sum would make sense
@Phoenix the slash indicates the reading "over", like the + over the list.
So it is like map
22:08
@Phoenix Except mapping is always implied for scalar functions.
Just as +/ is sum, so is +\ running sum.
@Phoenix . is dot product.
running sum means it returns a listt?
~ is not or without. ∩ ∪ do what you expect, but monadic is unique too.
@Phoenix yes, of as many elements. Try it online!
is membership (or ∊psilon=E=Enlist)
⍴ is rho =R=Reshape
does all kinds of unit-circular/trig/complex things.
is the empty set
is left and is right.
and are ceiling/max and floor/min
why not use the mathematical empty set symbol for empty set?
this one: ∅
@ais523 Well, it's pretty much that, no? Just a style difference. is too similar to the Danish letter Øø and confusable with transpose . Ø and ø are valid identifier chars in Dyalog APL.
transpose in maths is normally a supserscript T, which is pretty distinctive
although APL's symbol makes sense if you want it to be analogous to reverse
I didn't realise APL tried to avoid letters though
22:17
@ais523 And T(ranspose) is just English.
Also is the inverse of which in turn is from-base-N conversion, i.e. to-base-N. looks like the base of a pillar.
shouldn't they mean up and down, given the definitions of left and right?
@ais523 Yes, but APL expressions are 2D; there cannot be any top or bottom arguments, only left and right arguments.
@Phoenix symbolises the box, i.e. the computer. ←⎕ is input (of numbers) and ⎕← is output (STDOUT). Since strings are marked with single quotes ', the ←⍞ is string input, and ⍞← is prompt/output to STDERR (i.e. messages).
those last two commands are the same
@Phoenix [ ] square brackets can be used for indexing, but there is also a real indexing function, which is the composition of [ and ].
so I assume there's a typo there somewhere?
22:23
←⍞ and ⍞← both seem to be string input.
do any of the I/O commands use ?
@ais523 No, is GoTo, e.g. →5 GoTo line 5 or →End GoTo the label "End".
@ais523 is assignment, so no confusion with equality (=).
I'm not used to APL-alikes having variables
too much Jelly, I guess
is assignment in TI-Basic
Except it's e.g. 2→x
@Phoenix Yes, but TI-Basic goes from left to right, so that makes sense. APL goes from right to left.
@Phoenix Version 16.0 will include one new glyph that I managed to get in; (does not mean superset).
22:34
What is it, then?
And why isn't is superset?
@Phoenix The super and subset functions are pretty easy to write in APL anyway, so they barely need dedicated glyphs (although the NARS2000 dialect does provide a way to use them as such). Instead they have been repurposed for enclosing and disclosing arrays.
@Phoenix ⊂A is encloses A (makes it a self-contained scalar). ⊆A encloses A only if it isn't already enclose. You can see it as enclose-or-equal just like and .
Makes sense
@Phoenix P⊆A encloses pieces of A according to the pattern P.
is the inverse, disclose.
Just like converts from a base, so does convert from a string, i.e. eval. is the inverse; it converts numbers (or anything, really) to text.
@Phoenix | is division remainder and absolute value (like | x | in math).
if you have both eval and uneval, a quine should be really easy to write
@ais523 It isn't really uneval, though.
@Phoenix , is horizontal concatenation, while is vertical concatenation.
22:44
ah, hmm
being able to take a string and produce the source code representation of that string is a really useful technique
and that's the analogy on strings of uneval on numbers, in most languages
is a comment to enlighten you (it is a stylised picture of a lamp/bulb).
(because most languages write integer literals using decimal)
@ais523 We have a util for that. I have it mapped to F11.
@ modifies values at certain locations.
! is factorial (beta and gamma functions)
swaps arguments. You can kind of see how the wavy line swaps the two dots... (and its cute too)
in Brachylog we just use ~ to swap arguments
although I've been trying to persuade Fatalize to make it a superscript letter instead, for consistency
@ais523 Also in J, but ~ is logical not/set difference.
22:49
does APL have a policy of avoiding ASCII for operators?
@ais523 No: +-*,^~<>=
# is the root namespace.
- isn't even a minus sign, though, it's a hyphen; minus sign is
@ais523 Well, APL predates Unicode… And the confusion would be great if both had meaning. Originally, we used ^ for And. Now Dyalog APL uses , but allow ^ for compatibility. APLX has loads of such equivalencies.
is so frustrating because it's fairly important in Brachylog but doesn't seem to be anywhere on my keyboard layout
so I have to keep copying-and-pasting it from Brachylog docs
@ais523 Nah, AFAIK only APL keyboards have it. Why don't you just modify your layout if you use Brachylog a lot?
22:55
because I use other languages a lot too
(meanwhile, I've got fairly good at typing Jelly; its character set was designed to be mostly typable on standard Linux layouts; and there's a golfing language I'm working on whose character set is the common subset of "typable using level 1/2/3/4 shifts on the default Linux keyboard layout" and Windows-1252)
@ais523 That's man serving machine. I prefer the other way around; use the best glyphs and make the computer (keyboard) comply.
@Phoenix So what do you say? "the symbols make no sense at all"?
it's more to do with, if you stick with one language you can use a heavily customized keyboard
@ais523 You could have several custom layouts, one for each language.
but if you work in 54 different languages you want them to all have a common thread
I favour keyboard layouts that give me a lot of freedom in what I can type
é×±Ṣ→“€
@ais523 Wait, what‽ You cycle between 54 languages that all have unique character sets?
23:02
most of them use ASCII
also, 54 is as of right now an underestimate (it's the number of languages in the current polyglot, but I know plenty which aren't there)
@ais523 é×±Ç→¨É
I assume that was retyped?
several of the characters are different, after all
anyway, this is why I'm frustrated at things like not having a minus sign on the keyboard layout (it's a stock keyboard layout, just one with a lot of characters)
also it doesn't have Greek letters
at least, not all of them
I just feel like, if I want to type something, I shouldn't have to jump through hoops to type it
regardless of what language it's in
actually this topic's coming back round to TIO, in a way; it's likely eventually going to need understanding of character sets above simple "UTF-8/SBCS"
@ais523 On Windows you can switch language and have an onscreen keyboard layout for that langauge.
right, left alt + left shift
most of Windows' keyboard layouts are really anemic though
@ais523 Yes, and custom keyboards, like TryAPL's.
23:30
I really like the Windows mnemonic keyboard. The Linux one ends up binding letters to useful keys like [, `, =; the windows one binds letters to key combinations.
@Phoenix I use AltGr+Shift+AWSRYU as prefixes, then another (optionally shifted) key. AWS stand for ´^`. R and Y flank T. T is ⍨ in APL, so R is ¨ and Y is ~. U is for underscore. E.g. AltGr+Shift+U,Plus gives ±, and AltGr+Shift+R,Shift+A gives Ä.

« first day (91 days earlier)      last day (2778 days later) »