« first day (280 days earlier)      last day (2377 days later) » 
13:00 - 19:0019:00 - 00:00

7:00 PM
#TIO run apl-dyalog ⎕←+/1 4⍴⍳12
 
@barrycarter
10
 
#TIO run apl-dyalog ⎕←2 3 4⍴⍳24
 
@Adám
 1  2  3  4
 5  6  7  8
 9 10 11 12

13 14 15 16
17 18 19 20
21 22 23 24
 
#TIO run apl-dyalog ⎕←+/[1] 4⍴⍳12
 
@barrycarter
10
 
7:01 PM
#TIO run apl-dyalog ⎕←(+⌿2 3 4⍴⍳24)(+/[2]2 3 4⍴⍳24)(+/2 3 4⍴⍳24)
 
@Adám
 14 16 18 20  15 18 21 24  10 26 42
 22 24 26 28  51 54 57 60  58 74 90
 30 32 34 36
 
OK, I expected that to do the same thing as just "+/"
 
@barrycarter f/[1] is f⌿
 
Do I mean f/[0]?
 
#TIO run apl-dyalog ⎕←+/[2] 3 4⍴⍳12
 
7:03 PM
@Adám
10 26 42
 
Finally :-D
 
Ah, OK, but shouldn't +/[1] also give multiple columns (ie, a vector?)
 
11 messages moved to trash
 
#TIO run apl-dyalog ⎕←+/[1] 3 4⍴⍳12
 
@barrycarter
15 18 21 24
 
7:04 PM
@barrycarter It preserves the 2D layout of the columns.
 
OK, that's what I expected.
 
So we did /'s twin. Now we'll look at its cousin.
\
While / is reduction, \ is cumulative reduction:
#TIO run apl-dyalog ⎕←+\3 1 4 1 5
 
@Adám
3 4 8 9 14
 
So, for obvious reasons, f\ does not reduce rank either.
@barrycarter Multiplication is ×
 
I was trying to get 1 thru 7 factorial.. ah
 
7:07 PM
* is power!
@barrycarter Not the letter "x", the actual Unicode times sign.
 
#TIO run apl-dyalog ⎕← ×\ 1 2 3 4 5 6 7
 
@barrycarter
1 2 6 24 120 720 5040
 
There we go
 
2 messages moved to Trash
2 messages moved to Trash
 
Yes. But of course, you can just use ! for factorial.
 
7:08 PM
> Adam has invite you to join trash. See your invitations.
I am somewhat confused
 
@SocraticPhoenix message cleanup, ignore
 
because adam trashed lengthy errors and that invites you
 
/'s cousin \ of course has a twin too; . No need to explain, I presume.
 
And \[n] doubtless?
 
@barrycarter Yes.
 
7:10 PM
#TIO run apl-dyalog ⎕←+\ 3 4⍴⍳12
 
@barrycarter
1  3  6 10
5 11 18 26
9 19 30 42
 
@All That's four operators for you. Can we move on to another operator? Questions?
 
#TIO run apl-dyalog ⎕←+[2] 3 4⍴⍳12
 
@barrycarter
1  3  6 10
5 11 18 26
9 19 30 42
 
#TIO run apl-dyalog ⎕←2+\ 3 4⍴⍳12
 
7:11 PM
@barrycarter
line(1,0) : error AC0505: error (SYNTAX ERROR) executing line "⎕←2+\ 3 4⍴⍳12"
                                                               ^
Complete: 1 error.
DOMAIN ERROR: There were errors processing the script
 '#'⎕NS ⎕FIX'file:///home/runner/.bin.tio.dyalog'
∧

Real time: 0.032 s
User time: 0.007 s
Sys. time: 0.021 s
CPU share: 86.61 %
Exit code: 0
 
@Adám I'm a bit unclear on the behavior of /[n]
 
@Adám Does there exist a function that can reduce Vectors of more than one type?
 
@EriktheOutgolfer It selects the axis to be collapsed (reduced).
 
i.e 1 2 'abc'
 
@Adám ...
I get it
 
7:12 PM
@H.PWiz I'm guessing you'd need an operation that can be applied to both numbers and letters?
 
@H.PWiz Sure. Like we saw concatenation before. But any structural function will do.
 
the [] is there so that it's not confused with the right array
 
@EriktheOutgolfer Yes, it doesn't quite fit into the syntax. If you want clean syntax, use . But we can get back to that.
@H.PWiz You can also use a user-defined function with reduce. All APL operators apply to all APL functions. Period.
OK, the next operator is ¨ which is called "Each" for a good reason. f¨⍵ applies the function f monadically to each element of .
 
So f/ fails if f is solely monadic?
 
@barrycarter Yes. It has to, no?
 
7:15 PM
No, it could do what f'' or whatever does
 
@barrycarter the two operators are separate for clarity I guess
 
@barrycarter That wouldn't make sense. Then use .
 
and because user-defined functions which can be called either monadically or dyadically
 
@barrycarter And because many functions, especially primitives (built-ins) are ambivalent.
 
Right. I'm just saying that having f/ apply to each element individually would be a reasonable extension if f is monadic, but continue.
 
7:16 PM
apl isn't a golfing language :p
 
@barrycarter ⍺ f¨ ⍵ applies f between the paired-up elements of and .
 
#TIO run apl-dyalog ⎕← (1 2 3) + (4 5 6)
 
@barrycarter
5 7 9
 
#TIO run apl-dyalog ⎕← 1 2 3 , 4 5 6
 
@Adám
1 2 3 4 5 6
 
7:18 PM
#TIO run apl-dyalog ⎕← 1 2 3 ,¨ 4 5 6
 
@Adám
 1 4  2 5  3 6
 
@Adám is there a way other than using to map on one side only?
 
How is what i did different from +'' ?
 
#TIO run apl-dyalog ⎕← 1 2 3 ,¨ (10 20)(30 40)(5 6)
 
@Adám
 1 10 20  2 30 40  3 5 6
 
7:20 PM
@EriktheOutgolfer No. (I actually just wrote a new operator for that yesterday.) But if your arrays are regular (non-ragged) you should be using high-rank arrays instead, and then you can use .
@barrycarter Most arithmetic functions are "scalar" meaning they penetrate to the very leaves of the arrays. ¨ is meaningless for scalar functions.
 
@Adám another reason both rank and depth in the same language can be beneficial if tamed correctly
 
@Adám very sorry, but I have to off wifi now. @ThomasWard said he was trying to set up an instance of the bot, so hopefully that works out... I should be able to respond to question about it on my phone if necessary :)
 
@EriktheOutgolfer Yes. Interestingly, J is much more rank-oriented than APL, but does have that operator.
 
TIOBot logging off!
 
@Adám You previously spoke about defining operators. How would I define ¨ if it didn't already exist?
 
7:23 PM
TIOBot should be up in a little bit, patience.
 
@SocraticPhoenix Thank you so much, it was a great help!
 
#TIO rip
 
¨ isn't quite an operator is it? It's a function modifier?
 
@H.PWiz You can query the arguments' depth, and recurse if necessary.
 
@barrycarter um isn't that what an operator is
 
7:24 PM
@EriktheOutgolfer I thought an operator took two values and combined them?
 
@barrycarter In APL lingo, an operator is a function modifier; a higher-order function.
@barrycarter No, that's a function in APL lingo.
 
Ah, so ¨ is a monadic operator that happens to operate on functions?
 
all operators operate on functions
 
@barrycarter Correct.
 
What about 2 + 3?
 
7:25 PM
@EriktheOutgolfer But operators can also take arrays as operands.
@barrycarter That's an APL function.
 
OK, is monadic - (minus sign) a function or an operator?
 
@barrycarter A function.
 
a function; an operator is a function modifier
 
Oh, OK, so not exactly the common mathematical usage.
Is composition an operator then?
 
In fact, you can have a monadic operator which takes an array as operand, and derives a monadic function. It will have an appearance very similar to a dyadic function.
@barrycarter Yes.
 
7:27 PM
Is the monadic function f(n) = nth element of array?
 
@barrycarter "operator" as in "Heaviside operator"
@barrycarter What?
 
Ignore that.
So you can ¨an array?
 
6 messages moved to Trash
 
@barrycarter No, but not out of principle, only because we have not defined that (yet - I have an idea).
 
#TIO help
 
there we go, TIOBot is back :)
 
Got it. Some operators can also be applied to arrays, not just functions?
 
#TIO run apl-dyalog ⎕←'Hello, World!'
 
@Adám
Hello, World!
 
@barrycarter Yes, in fact, some operators can only take arrays as at least one of their operands.
@barrycarter We can do such an operator now.
You may have noticed when I briefly mentioned that * is power in APL. 5*2 is 25.
* is the power function.
is the power operator.
(In a proper font, they are supposed to have identical stars)
f⍣n applies the function f n times.
#TIO run apl-dyalog ⎕←2×3
 
7:32 PM
@Adám
6
 
#TIO run apl-dyalog ⎕←2×2×3
 
@Adám
12
 
#TIO run apl-dyalog ⎕←2×2×2×3
 
@Adám
24
 
#TIO run apl-dyalog ⎕←2(×⍣3)3
 
7:32 PM
problem
 
indeed.
 
Well, it is supposed to give 24.
 
So the ×⍣3 applies to the 2?
 
I.e. it did the multiplication 3 times. We need parentheses here to separate the two 3s.
 
TIOBot logged in!
 
7:33 PM
#TIO run apl-dyalog ⎕←2(×⍣3)3
 
@Thomas Ward
24
 
@barrycarter No, it applies between 2 and 3.
 
@Adám oh so dyadic use of just uses the left arg on each iteration. I confuse that a lot
 
Wouldn't that be "2 x x x 3" or something?
 
@dzaima Yes. ⍺ (f⍣n) ⍵ is defined as `(⍺∘f⍣n) ⍵
@barrycarter No, because that would be applying one function all the first times, and an entirely different function the last time.
 
7:35 PM
OK, so f ⍣3 applies f to its left arg thrice? as f(f(f(x,x),x,x) or something?
 
(all the first: monadic; the last: dyadic)
@barrycarter No, to its right. ⍺ (f⍣3) ⍵ is ⍺ f ⍺ f ⍺ f ⍵
@dzaima Operators are never ambivalent. Their derived functions can be, but they are either monadic or dyadic. is dyadic. / and ¨ are monadic.
 
OK, I'm lost because I don't know what f ⍺ f ⍺ f ⍵ means
 
it's right-associative
 
8 messages moved to Trash
 
@barrycarter it's identical to ⍺ f (⍺ f (⍺ f ⍵))
 
7:38 PM
So, in our case its "2 x 2 x 2 x 3"
 
@barrycarter Yes.
 
I think I got it
 
There you have it, an operator which takes an array operand.
 
Wait, in our example, we applied ⍣3 to the multiplication operator, right?
 
can also take a function right operand, f⍣g. In that case n is not predetermined, but it will keep applying ⍺∘funtil (⍺ f ⍵) g ⍵.
@barrycarter Yes, but can be applied to any monadic or dyadic function.
 
7:41 PM
@barrycarter multiplication function
 
@dzaima Yes, function.
 
So you're saying the result of f⍣3 was the operator that took arrays as operands?
 
@barrycarter No the result of f⍣3 is a new function which takes arrays as arguments
functions take arguments. operators take operands.
 
OK, so where did we see the operator that takes an array operand? Was "3" the array operand?
 
@barrycarter Yes.
 
7:42 PM
Ah, got it.
 
So f⍣= is the fixpoint of f.
#TIO run apl-dyalog ⎕←0.5×⍣=1
 
@Adám
0
 
If you keep halving 1 you end up with 0.
 
@Adám isn't = equality comparison?
 
@EriktheOutgolfer Yes. So?
 
7:44 PM
Two character operators parse before single character ones?
 
@Adám might be worth mentioning why, first time I saw that I was very confused
 
0.5×⍣= means keep multiplying 0.5 with the argument until it stops changing.
@barrycarter There are no two-character operators (or functions). This was taking = as right operand.
 
Oh.
 
@Adám unless you define one yourself
 
Wait, can ⍣ take "<" as a right operand? Repeat until next result is less than previous result?
 
7:46 PM
@EriktheOutgolfer Yes, userdefined names can be long, but they are only made of alphanumerics.
@barrycarter Yes. can take any dyadic function as right operand.
 
And any monadic function as a left operand?
 
In fact, sometimes I do most of the work in the right operand, with a trivial left operand.
@barrycarter Or dyadic.
 
#TIO run apl-dyalog ⎕←cos(x)⍣=1
 
@barrycarter
line(1,0) : error AC0505: error (VALUE ERROR) executing line "⎕←cos(x)⍣=1"
                                                              ^
Complete: 1 error.
DOMAIN ERROR: There were errors processing the script
 '#'⎕NS ⎕FIX'file:///home/runner/.bin.tio.dyalog'
∧

Real time: 0.030 s
User time: 0.009 s
Sys. time: 0.016 s
CPU share: 85.01 %
Exit code: 0
 
7:48 PM
@barrycarter cos is 2○
 
#TIO run apl-dyalog ⎕←2○(x)⍣=1
 
@barrycarter
line(1,0) : error AC0505: error (VALUE ERROR) executing line "⎕←2○(x)⍣=1"
                                                              ^
Complete: 1 error.
DOMAIN ERROR: There were errors processing the script
 '#'⎕NS ⎕FIX'file:///home/runner/.bin.tio.dyalog'
∧

Real time: 0.024 s
User time: 0.005 s
Sys. time: 0.017 s
CPU share: 87.37 %
Exit code: 0
 
@barrycarter Just 2○ no parens needed.
 
#TIO run apl-dyalog ⎕←2○x⍣=1
 
@barrycarter
line(1,0) : error AC0505: error (VALUE ERROR) executing line "⎕←2○x⍣=1"
                                                              ^
Complete: 1 error.
DOMAIN ERROR: There were errors processing the script
 '#'⎕NS ⎕FIX'file:///home/runner/.bin.tio.dyalog'
∧

Real time: 0.028 s
User time: 0.006 s
Sys. time: 0.018 s
CPU share: 87.48 %
Exit code: 0
 
7:49 PM
Oh wait
 
@barrycarter No x either.
 
I don't need an argument do I
#TIO run apl-dyalog ⎕←2○⍣=1
 
@barrycarter
0.7390851332
 
is just another normal scalar primitive function.
APL has no reserved words whatsoever. None. Period. All built-ins have non-alphanumeric names.
 
Hmmm... so 2○ is cosine, what's ○ ?
 
7:50 PM
@barrycarter Pi times.
 
Ah, so no relation between ○ and 2○?
 
@barrycarter Yes, both relate to the unit circle, hence the symbol.
 
Ah, but cosine is 2○ just because. I assume 3○ is sine or something?
 
Naturally, 1○ is sin and 3○ is tan.
 
Of course
 
7:53 PM
and ¯1○ is arcsin, and so on.
 
btw @Adám I'd have preferred an operator instead of dyadic
 
@EriktheOutgolfer But operators are not scalar. 1 2 3○ is the sin,cos,tan.
 
What is composition?
 
@barrycarter
 
Say I wanted sin(tan(x)) ?
Ah.
 
7:55 PM
@barrycarter ○/1 3 x
 
Is there an operator to flip the arguments of a function?
 
@H.PWiz Yes, I was just getting to that one actually.
 
Great
 
is a monadic operator taking a dyadic function and deriving an ambivalent function.
⍺ f⍨ ⍵ is ⍵ f ⍺
 
@Adám This applies ○ to 1 3 and x?
 
7:56 PM
f⍨ ⍵ is ⍵ f ⍵
@barrycarter This is a reduction, so ○/1 3 x is 1○3○x and since APL functions are right-associative, this is 1○(3○x) i.e. sin(tan(x))
@EriktheOutgolfer You see why shouldn't be an operator?
 
So, x here is actually "x", not the times function?
 
@Adám hmm
yes
 
@EriktheOutgolfer If you want the derived function ("1○" had been an operator), just do sin←1∘○
@barrycarter Yes.
@barrycarter If you want an actual function which is the composition of sin and tan, do 1○3○⊢ or 1○3∘○
( is the identity function)
 
So, ○ isn't an operator? It seems to take an array (scalar) as its sole operand and returns a function?
 
no it isn't
not only operators take arrays :p
 
8:00 PM
@barrycarter No, it is a function. It pairs up. 1 2 3○a b c is sin(a),cos(b),tan(c)
 
So it's a function that takes a scalar as an argument and returns a function?
 
@EriktheOutgolfer Right, we saw that can take an array too.
@barrycarter No, it doesn't return a function. It is the circular function. Its left argument is restricted to integers in the range ¯12 to 12.
@H.PWiz Was clear?
 
Yes, I would say so
 
But it still returns the function sine, for example, right? Input: 1, output: sin() as function?
 
it doesn't
it just does sin
 
8:03 PM
Right, the pure sine function?
 
@barrycarter It doesn't return it. It calculates the sine when the left arg is 1. To get a "sine" function, you'd have to compose a fixed left argument of 1 with the function as follows: sin← 1∘○
seems very simple, but it has some neat applications.
Monadic +⍨ is double. Monadic ×⍨ is square.
 
Oh, so n○x is either sin(x), cos(x), or tan(x) depending on n. Think I got it.
 
not just those three
 
#TIO run apl-dyalog ⎕←,⍨/1 2 3 4 5
 
@barrycarter if it did, then (1○)3 would work, but it doesn't - in instantly needs both sides or has to be left untouched, by composing
 
8:05 PM
@H.PWiz
 5 4 3 2 1
 
Right. There's also some arc stuff with _1 or something
 
@barrycarter Yes, and a whole host of other functions to. 25 to be precise.
I (informally) call "selfie" when the derived function is used monadically, because that's what it does, and it looks like a selfie (photo) too.
 
OK, I'm off, but thanks @Adám -- this was interesting (will lurk starting now)
 
@H.PWiz Yes, but you can also just use monadic .
 
@Adám Yes, I know. Just thought it was cool
 
8:07 PM
Yeah, we've gone over time. Thank you to all participants! Next week?
 
I'll keep my registration in
 
@All If you want to be reminded a couple of hours and a few minutes before the next lesson, register here.
 
@Adám glad that we were able to get TIOBot back up for you :)
unless you have an objection I can let it stay here :)
the thing's on an always-on uplink logged into my chatbot/sockpuppet
 
@ThomasWard Yeah, that's huge plus for a lesson like this. Thank you so much!
 
you're welcome :)
 
8:10 PM
@ThomasWard Cool. Yeah, I'd appreciate it.
@ThomasWard I guess you were just the right mod to ask for TIOBot to get write access.
 
as I said in TNB, I'm no more than an SSH session away from the box in case i need to kick the thing, so feel free to let me know if it breaks :)
@Adám well, the TIOBot account still isn't in the access list
but AquariusOne has the rep to chat on the SE network already
so it was a simple "Use my sock's creds" decision
 
@ThomasWard OK. I can always kick it myself if needed (I'm RO here).
 
hope you don't mind :)
@Adám true, but I meant if it stops replying and needs a kick in the pants to reboot it
 
@ThomasWard No, it is fine.
@ThomasWard Oh, ok. I'll keep that in mind.
 
yep, enjoy!
drifts back into the shadows
 
8:12 PM
Is anybody interested in more cool selfies?
 
@Adám huh
anyways gtg
 
@EriktheOutgolfer OK. Then let's stop here
@All See you all next week!
 
 
2 hours later…
10:42 PM
@Adám how would you write a muliplication table (say 1 to 9) in lefty APL? iota 9 outerprod mul selfie? 9 iota selfie outerprod mul? something else?
 
@Uriel "lefty APL"? Oh, you mean my theoretical dialect. OK.
@Uriel ∘.×⍨⍳9
But ∘. should be regular. Lets use f\ for now, so ×\⍨⍳9
 
@Adám so basically it should be implemented with a single register for left operand/arg (and final result), temp register for right arg and a call stack for functions?
 
@Uriel That's a possibility if monadic functions are still prefix. If they would be suffix, it would be 9⍳×\⍨ if monadic operators would still be suffix, otherwise it would be 9⍳⍨\× i.e. just reversed of the current.
 
#TIO run apl-dyalog ⎕←×\⍨⍳9
 
@Uriel
line(1,0) : error AC0505: error (SYNTAX ERROR) executing line "⎕←×\⍨⍳9"
                                                               ^
Complete: 1 error.
DOMAIN ERROR: There were errors processing the script
 '#'⎕NS ⎕FIX'file:///home/runner/.bin.tio.dyalog'
∧

Real time: 0.030 s
User time: 0.007 s
Sys. time: 0.019 s
CPU share: 88.25 %
Exit code: 0
 
10:50 PM
Ouch
 
@Uriel f\⍨ isn't outer product!
#TIO run apl-dyalog ⎕←∘.×⍨⍳9
 
@Adám
1  2  3  4  5  6  7  8  9
2  4  6  8 10 12 14 16 18
3  6  9 12 15 18 21 24 27
4  8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
 
@AquariusOne You're awesome!
 
@Adám that was my initial thought, then I realized it would look really weird with functions like log or shape, and practically, much similar to stack based langs. so I figure ×\⍨⍳9 would be better
All these autocorrect typos... I think I'm starting to miss T9
 
@Uriel Exactly. I think that strikes a nice balance. Also, it allows you to write 2+-4+5 and it means what it looks like it means.
@Uriel I use T9 on my phone, it is great!
 
11:04 PM
@Adám I thought u were more of a fan of the macron negation
#TIO run apl-dyalog ⎕←∘.×⍨⍳9
 
@Uriel
1  2  3  4  5  6  7  8  9
2  4  6  8 10 12 14 16 18
3  6  9 12 15 18 21 24 27
4  8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
 
Ok it's not that comfortable
 
@Uriel Sure, but in general I think it would be nice.
@Uriel E.g. currently you have to write 'you have ',(⍕num),'items' while with my lefty-APL you can just write 'you have ',⍕num,'items'
 
@Adám or
#TIO run apl-dyalog ⎕←3×2+1
 
@Uriel
9
 
11:09 PM
You can even "inject" dyadic functions by making them monadic with compose: 1 2 3,2∘×4,5 would give 1 2 3 8 5
 
@AquariusOne well, ain't you a lil' genius?
 
@Uriel … or what?
 
@Adám see where I summon aquarius below
 
@Uriel What about it? In lefty-APL it would give 7.
 
@Adám exactly, as would a human give, unlike right APL
 
11:12 PM
@Uriel which superficially seems more "normal" (i.e. like school math), but 1+2×3 gives the "expected" 7 in righty-APL but 9 in lefty-APL.
 
@Adám good point. and we all know operator precendence is yucks
 
@Uriel Yes, and there is just no way around any APL (meaning no-precedence) having cases which seem strange to people at first.
@Uriel But remembering 1. operators, 2. monadic functions, 3. dyadic functions isn't so bad, especially if we go left-to-right, and there just isn't any other way than doing the monads first.
In A=⌽A we must evaluate ⌽A before A= even in lefty-APL, because = needs a right argument.
 
@Adám a lefty APL should catch good for Latin based programmers
rtl users would however appreciate the righty, given an rtl aligned set of symbols
 
@Uriel Yes. Hm, if current APL allowed Hebrew names, it may be more natural to RtLers.
 
@Adám that's what I said about functions stack
 
11:19 PM
@Uriel Yes. I know.
Wait, not I have to try making APL truly RtL. Hang on.
 
@Adám well, numbers are the only obstacle, apart for Unicode support. I guess gematria would solve that but make the language impractical
 
@Adám wat 3×1+2=7 how?
 
@Uriel It is totally confused about the directionality of the characters. I entered 1+2×3 but it changes the display order!
@Uriel For the last line, I entered 3×2+1
APL just looks at the logical order of characters. Chromium renders according to some obscure Unicode rules. I had set CSS {unicode-bidi:override;direction:rtl}
 
@Adám oh makes sense. yeah, I used to write Hebrew strings reversed in Python so they would show rtl in the editor and console. then my editor started supporting rtl, so I just entered them normally and reversed before printing
 
11:32 PM
@Uriel The Windows IDE will display in logic order, but RIDE is just a webbrowser in disguise, so it does the whole Unicode magic, with sometimes humorous results.
 
@Adám if it is, you should suggest your guys to let users define css sheets to change the ide view. most modern editors do that
btw I'm not I'm using RIDE. is it also the 14.0 thing?
 
@Uriel You already can change RIDE. The IDE doesn't use CSS.
@Uriel No, think you can use an old version of RIDE with 14.0, but there is no reason to. The old RIDE was pretty awful to look at. The new one looks cool, but sill doesn't have nearly as much functionality as the IDE.
#TIO run apl-dyalog ⎕←⍪'א1ב' 'א2ב' 'A3B' 'A4B'
 
@Adám
 א1ב
 א2ב
 A3B
 A4B
 
@Uriel The above looks a bit odd, no?
 
11:48 PM
@Adám I'm quite used to this odd ordering on mixed texts
 
@Uriel Sure looks wrong though. If the rendering was clever enough, it would only render quoted text according to the rules, and everything else LtR.
 
@Adám well, but if it would be all Hebrew text, anyone would tell you that the right alignment surely is more intuitive, even if the right most item is at the top of the matrix
 
@Uriel I don't think so. It the programming language is LtR (reading order) then multiple Hebrew strings should appear LtR even if each one would be RtL internally.
Then ⊣/ would always pick the leftmost and ⊢/ the rightmost.
 
Well, as far as I know I'm probably the only one messing with APL and non Latin characters, so that should be all right
 
@Uriel Not so, we have paying customers who even asked to be allowed Hebrew variable names.
 
11:57 PM
@Adám well, maybe they have used libraries written by speakers and needed compatability
 
13:00 - 19:0019:00 - 00:00

« first day (280 days earlier)      last day (2377 days later) »