« first day (1054 days earlier)      last day (33 days later) » 

1:41 AM
@AZTECCO Welcome to the Orchard! Feel free to ask any APL question, post challenges, and play with the bot.
⍞←' @ACEHLOTZ'[⎕A⍳'FEGGHABCJIEDDH']
 
@Adám HELLO @AZTECCO
 
2:04 AM
@Adám hello!
 
@AZTECCO Are you familiar with SE chat?
 
Not really
I used only for Japt and I created one but I'm sure I have still to learn many things
 
@AZTECCO Well, it is basically like SE comments markdown, but you can hover over a message and click ↳ to insert a tag which will ping the author (like @name) and also indicate which message you're responding to.
You can enter )about to learn about the chat bot's features.
 
)about
 
@AZTECCO You can evaluate a single line of APL by typing it into chat prefixed by ⍞←. Use ⎕← instead for boxed display and multi-line results and use ⋄ instead to silence the first statement. Use ] to call user commands, including ]help ⍣ for help on a glyph etc. Do not use markdown, but fixed-width (4 initial spaces) is fine. Commands: )lb for language bar, )docs for full documentation, )ref for PDF reference card, )idioms for idiom list.
 
2:10 AM
⍞←2 3⍴⍳6
 
@AZTECCO 1 2 3
 
⎕←2 3⍴⍳6
 
@AZTECCO
1 2 3
4 5 6
 
@Adám ping?
 
@AZTECCO pong!
 
2:14 AM
Ahahah thank you!
)lb
 
@AZTECCO ← +-×÷*⍟⌹○!? |⌈⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↑↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬∆⍙Install…
 
)docs
 
)ref
 
2:26 AM
)idioms
 
@AZTECCO Ah, maybe I should change that one. I now recommend aplcart.info instead.
 
2:49 AM
@Adám saved thanks
 
@AZTECCO My pleasure. Let me know if I can help with anything.
 
Sure! For now I'm enjoying the tutorial, everything is fine
 
 
11 hours later…
2:07 PM
@david Hello there. Interested in APL?
 
 
4 hours later…
6:10 PM
;facepalm';
 
@kuthulu Why?
 
 
5 hours later…
11:14 PM
@Adám yes, very much. Sounds like a good way to broaden your horizon.
 
@david How much APL do you know already?
 
Very little APL, and just some J basics, but APL seemed to be a lot more readable
 
I'll be happy to help you get started. Can I ask you what your background is?
 
11:29 PM
My programming background? Mostly imperative languages in school, but recently really into Haskell, which is unfortunately not that useful for codegolf.
 
And non-programming background? Are you mathematically inclined?
 
Oh, that's difficult, I never had a huge problem with mathematics and like solving mathematical problems, but studied a non math related subject in university. So mathematicaly inclined, but the knowledge might n always be up to par. I guess.
Is there a huge difference between the different implementations of APL? Or is it more in the details?
 
I'd say medium. Basic APL is identical across all implementations, and by far most you'll meet are extremely similar, mostly differing in having two (half-)symbols with swappend meaning, and in their repertoire of auxiliary (non-core) functionality.
@david OK, cool. Well, when coming from traditional (imperative) programming languages, it is easiest to grasp APL by letting go of the notion that it is just a programming language (despite the name!) and instead seeing it as a better alternative to Traditional Mathematical Notation (TMN).
The whole idea behind APL is actually to be a consistent and harmonic notation for humans to communicate algorithmic ideas. Because the notation is unambiguous, it lends itself to machine evaluation too, but that's actually just a bonus.
So, APL takes basic concepts from TMN and generalises them. E.g. - can be used prefix and infix in TMN. So too can all functions in APL be used prefix or infix. We call it monadic and dyadic function application.
Many functions have a close relationship between their monadic and dyadic form, with the monadic form being like the dyadic, but with a default left argument. E.g. - uses 0 as default left argument.
@david Can you guess the default left argument of ÷ ?
 
11:47 PM
I think I read that before it's 1, right?
 
That's correct. So in other words, monadic ÷ is reciprocal.
And because f(x) and monadic - take their arguments on their right, so to do all functions take everything on their right as their argument, until the end of the statement (bar parentheses). So 4-3-2 is 3, not -1
There are many names for this. Long right scope. Right-associativity. Right-to-left evaluation. Anyway, it makes for one simple rule instead of a large and confusing (and context-dependent) order-of-evaluation rule-set.
@david You're familiar with notations like ∑ and ∏ in TMN, right?
 
Yes
 
APL recognises the fundamental idea behind them, namely reducing a list (a vector) into a single number (a scalar) though a higher-order function we denote / (remember that division uses the proper symbol). So +/ is sum and ×/ is product.
Notice that the derived APL functions are shorter than even the shorted mnemonic names for these.
APL also has higher-order functions which takes two regular functions and derives a combined function based on them. E.g. the . combines two functions into a way of application similar to how addition and multiplication is performed when computing the dot product. +.× is dot product in APL, but any two functions can be used.
Oh, APlers tend to call higher-order functions operators and their "arguments" operands.
@david Is this clear or do you want another couple of examples of APL operators?
 

« first day (1054 days earlier)      last day (33 days later) »