Good to hear! It was a fantastic presentation from Sergey.
@jaimejacobcАй бұрын
What is the name of the program or compiler you use to use alp?
@DyalogUserMeetingАй бұрын
You can download the Dyalog IDE from our website: www.dyalog.com/download-zone.htm It's completely free for non-commercial use! Let us know how you get on and if you have any questions. :)
@DyalogUserMeetingАй бұрын
There is also the cross-platform IDE, Dyalog RIDE here: github.com/Dyalog/ride
@nunzioturtulici9636Ай бұрын
Where can I find info?
@DyalogUserMeetingАй бұрын
Brian's raylib-APL project is on GitHub at github.com/Brian-ED/raylib-apl.
@alberteinstein1015Ай бұрын
facinating, much very cool.
@DyalogUserMeetingАй бұрын
Glad you enjoyed it, it was a great presentation from Brian.
@ivansukin721Ай бұрын
Good to see that APL is being taught at the university. I try to use it in my courses (as a teacher), but these attemps are not always successful :)
@DyalogUserMeetingАй бұрын
Hi! We would be interested in hearing more about how you try and use APL in your courses. Why do you think it doesn't always go well and what could we do to help you?
@DyalogUserMeetingАй бұрын
For all the info on the APL Forge (and to enter the 2025 round!): forge.dyalog.com/
@DyalogUserMeetingАй бұрын
For all the info on the APL Forge (and to enter the 2025 round!): forge.dyalog.com/
@CBaggersАй бұрын
Excellent beginner guide. I'm definitely going to be checking out more APL
@DyalogUserMeetingАй бұрын
Fantastic! Please let us know how you get on (and if you need any pointers!).
@meme_gawd2 ай бұрын
12:00 sex party
@piotrkozbial87534 ай бұрын
Maybe an example of a simple web server implantation in APL would help... to drbunk the bs.
@casibari15375 ай бұрын
On 'functions' vs 'algorithms' I'd say: 'function' denotes the abstract concept that a value follows from other values and 'algorithm' is a description of how to get the dependent value given the values it depends on. The description could be expressed in natural language or in some (pseudo) programming language. As a consequence, the complexity of the description (algorithm) depends on the expressivity of the language used to describe.
@rdatta7 ай бұрын
Does anyone able to share the titles of some of Roger Hui's papers that Stefan refers to about half way through the talk?
@DyalogUserMeeting6 ай бұрын
You should be able to find them here: code.jsoftware.com/wiki/Essays/Bibliography
@Aligarde8 ай бұрын
Thank you a lot for these explanations!
@DyalogUserMeeting8 ай бұрын
You're very welcome! If you have any question, please add them to chat.
@c4tubo8 ай бұрын
Although my first and primary spoken language is US English, the bias to English words in most programming languages bothers me so much that I decided for the PL I am designing that it will have no reserved keywords at all, of any spoken language; only symbols.
@alessandrolima42668 ай бұрын
amazing
@GiriPrasath.D8 ай бұрын
I really 😢 missed the APL seeds meeting
@DyalogUserMeeting8 ай бұрын
sorry you missed it. All the videos are now available. Let us know if you have any questions!
@GiriPrasath.D8 ай бұрын
Hello Code report, from your KZbin videos like solving Leet code problems with different programming languages, i found that APL language, it was very new to me. currently, I'm started to APL programming languages.
@DyalogUserMeeting8 ай бұрын
fantastic to hear you are starting with APL. Let us know if we can help!
@treangle9 ай бұрын
Nice!
@arcfide11 ай бұрын
Thanks for putting on a great event! I had a blast.
@DyalogUserMeeting11 ай бұрын
Thank you for joining us Aaron. A great event to start the year off with!
@ggoadmusic11 ай бұрын
This is the second time I've watched this talk! :-) So I write an absolute ton of JavaScript, and JS provides an in-built reduce on lists. You can do some pretty APL-like things in JS. APL (talks like this one and others) are what got me interested in learning about reduce. Diving into APL is on my list of things to accomplish. Here is an example of one solution to the all_equal function in JS, using just native JS. [1,1,1,1,1].reduce((a,v,i,arr)=>a && arr[0] === v, true) Definitely not as pretty as APL.... lol. I really want to learn it, but there just isn't but one of me. We'll get to it eventually. Thanks for sharing your video. It was bad-to-the-bone.
@DyalogUserMeeting11 ай бұрын
Maybe an even more literal translation of Conor's ∧/{(⊃⍵)=⍵} and ∧/(⊃=⊢) into JS would be arr=>arr.map(v=>arr[0]===v).reduce((a,b)=>a&&b) or arr=>arr.every(v=>arr[0]===v) Note also that Conor's {1=≢∪⍵} and (1=≢)∪ could be translated to arr=>(new Set(arr)).size==1
@ggoadmusic11 ай бұрын
@@DyalogUserMeeting I love that. That's good stuff.
@ggoadmusic11 ай бұрын
@@DyalogUserMeeting Growing in code, dude.
@sossupummi11 ай бұрын
this is seriously awesome, hope you guys can make some tutorial videos for this package
@DyalogUserMeeting11 ай бұрын
We're talking with the group about this - in the meantime, they will be joining us on Wednesday March 27 at the APL Seeds '24 online event to talk about quAPL, scientific software prototyping and to discuss any questions and comments live.
@anytcl Жыл бұрын
in raku you can use the [==] or [eq] operators == for numeric eq for strings which is the equivalent of reduce &infix:<==> or reduce &infix:<eq> you can create a list in variable or apply it to a list directly reduce &infix:<==> , 1,3,3,4 > False reduce &infix:<==> , (1,3,3,4) > False my @list = (1,3,3,4) ; reduce &infix:<==> , @list > False
@DyalogUserMeeting Жыл бұрын
Yes, and in fact, you don't even need to write reduce &infix:<==>, as you can spell this just [==] but, while it works, it is confusingly inconsistent with other reductions, as it is NOT in fact a reduction, but rather inserts the comparison between the elements and then relies on Raku's chained comparisons. How would you actually perform a comparison reduction, for example with inequality, to find the parity of a Boolean list? In APL, this is just ≠/
@anytcl Жыл бұрын
@@DyalogUserMeeting i am not sure what ≠/ does exactly but yes [!=] in raku seem to do mathematical chaining so for example [!=] 1 , 2 , 3 , 2 True but [!=] 1 , 3 , 3, 2 False because raku i think transform to 1 != 3 && 3!=3 && 3!=2 so if in your list any 2 sequential numbers are equal it will be false
@Yupppi Жыл бұрын
The FinnAPL was completely new thing to me as a finn, thanks for that. These cult like encapsulated knowledge vaults just don't come up unless someone from the "inside" hints at it. Looked up the pdf and it's interesting how old-timey the linguistic expressions are, it has some benefit from mathematics being so old that it has established vocabulary, but particularly computer science has always had difficulties where you think everything sounds odd in finnish and has a wrong translation when you learn the english original words. Like until very recently it was still common to refer to a function as "subprogram" in finnish which is not wrong but feels weird. And the object-oriented programming is a word that nobody understands when they are taught it in finnish, it is like "creature based programming" and nobody even learns classes until way into it so they have no concept (the finnish words for the creature based programming term are just somewhat uncommon in common spoken language, and their combination doesn't even connect with the meaning of the words because of the pronunciation). That being said, the pdf was really well written, I wish all programming languages had that kind of introductory booklet where you're introduced to the style, "vocabulary" of the language and just very practical examples. It's funny how they use some well known tongue twisters as example inputs.
@0LoneTech4 ай бұрын
Subprogram is a term from Ada, encompassing both procedures and functions. C calls both functions (incorrectly).
@allanwind295 Жыл бұрын
I always learn something from Martin's presentations. Watching this a 2nd time I will probably learn something.
@sicko815 Жыл бұрын
Brilliant talk Love to see the direction codfns is taking APL in
@arcfide Жыл бұрын
Thanks for the positive encouragement! I hope Co-dfns can help people fall in love with APL as much as I have. :-)
@encapsulatio9 ай бұрын
@@arcfide @arcfide Is there any recording this year from you from Functional Conf?
@arcfide9 ай бұрын
@@encapsulatio I don't think Functional Conf ran this past year, if that's what you mean. If they did, I didn't present. I'm not slated for anything from FnConf in 2024 that I know of either. However, I will be giving two talks at LambdaConf in the near future.
@encapsulatio9 ай бұрын
@@arcfide Ok, did not know that, I was only interested if there are any talks from you that were recorded in 2023 outside of Dyalog youtube channel. Btw are there any existing videos or articles where it's clarified how APL compares with statically typed programming languages when the codebase becomes larger and how is refactoring done in APL compared to a strongly typed fancy language like Haskell, Ocaml or Scala with complex type systems that give you a way way easier job when you need to refactor something and also reduce your cognitive load by a lot by not needing to worry as much as in a dynamic language about "faulty wiring".
@snunezcr Жыл бұрын
This is an excellent talk to get a glimpse into how the interpreter is responsible for the memory footprint in Dyalog APL, and the general responsibilities it has.
@harrybilsonia Жыл бұрын
well, let's say I'm not very sober, and had this crazy idea that there's a possibility people make web servers in APL, and yes it's awesome
@encapsulatio Жыл бұрын
I think it's a good idea to post for every video a link to your website. Also in your youtube channel's "About" section. Most people like to just click a link instead of googling your website.
@DyalogUserMeeting Жыл бұрын
Thanks for the suggestion. We've added a link to our about section.
@sicko815 Жыл бұрын
What exactly is a namespace in APL? And what do variables and values in namespaces? Is it like classes or structs, or more like namespaces or packages or modules in other languages like C++ or Java?
@DyalogUserMeeting Жыл бұрын
A namespace is like a class without inheritance, constructor/destructor, or access control. For more information, including links to resources, visit aplwiki.com/wiki/Namespace or watch the introductory video at kzbin.info/www/bejne/m3OoqHWJhJqgeKM
@StefanoLanzavecchia Жыл бұрын
This gets my vote immediately :)
@StefanoLanzavecchia Жыл бұрын
I understand this would require a new "paradigm" (for lack of a better word) in Dyalog APL, but it would be nice to be able to get in the APL process the data output-ed to stdout (for instance) of a long running process. In other words: I spawn from Dyalog APL an external process that logs stuff into stdout, and the APL side can get the stuff that is being put into stdout not at the end in one huge array once the external process terminates, but as it is generated "in real time" (as it is flushed, really). This would make possible "monitoring" external "server" processes of the verbose kind which log what they are doing to stdout (and stderr). The data should appear as readable streams on the APL side. "Readable how" not immediately clear. And also, how would the waiting on the external not block the interpreter not clear (probably a thread switch point?). Anyway: this would be useful and certainly consistent with the "Unix" way of doing things.
@DyalogUserMeeting Жыл бұрын
Thanks for the feedback. The new function could possibly use the same callback mechanism that will be available for long running NMOVE/NCOPY operations in v19.0.
@arraymac227 Жыл бұрын
'Would do APL for free.' Check
@stupid4President Жыл бұрын
This was an old presentation but I was wondering is there an APL IDE on ios/android at the moment?
@DyalogUserMeeting Жыл бұрын
Support is planned (but no release date has been set) for Android. We are monitoring the Apple iOS platform, but it is not currently clear that it makes sense to develop a dynamic application development tool for this platform (due to restrictions imposed by the environment). A new product with reduced functionality may be required.
@yash1152 Жыл бұрын
40:55 paradigm conference, ppl looking languages of various paradigms wow
@yash1152 Жыл бұрын
30:02 under or dual operator "preprocess then postprocess with inverse"
@yash1152 Жыл бұрын
18:37 yeah, i faced this problem while trying to pair 1,2 with two vectors A, B to be able to then apply rotate over each obtained pair to compute cross product
@yash1152 Жыл бұрын
oh wait no, i needed this: {1,2)×{A,B} to get C = {1A, 1B, 2A, 2B} to be able to rotate each member of C's 2nd field by its 1st field
@yash1152 Жыл бұрын
15:17 takes a bitter mouth to bite into depth edit: bigger*
@yash1152 Жыл бұрын
11:16 11:24 Grades: some cutoffs & bounds & interval index ohwww, so Grades refers specifically to that. i thought grades & percentages were same-ish thing. It kinda is, when applied only once at the very end to the grand total... but applied 2 times (one to each subject's totals, and second to spbjects total so obtained) it definitely obscures things.
@yash1152 Жыл бұрын
5:13 TIL term: "balanced parens"
@jean-marclugrin1902 Жыл бұрын
Even as an hobbyist learner of APL, I appreciate your presentation. I do not have a well founded opinion on the subject, but your presentation also shed light on the current facilities and how they relate together. Thanks.
@qu4ku Жыл бұрын
great job rodrigo!
@bobvanwagner6099 Жыл бұрын
The ability to do desk debugging, aka here "blackboard" workouts, is key. The mind is trained in thinking (easily because of the sparse notation and generality) about the attack on a problem. Today, since Computer Science's dumbing down in stylistic fads and decortative tack-ons like exception handling, type constraints, silly things like avoiding go-to's -- too many to mention all intensly stupefying, mind use wise -- all coding is spagettti against the wall, twiddling nonsense. Fortunately Iverson PREDATED Computer Science as it became circa 1980, to pick a year thereabout. Formal proofs are not the nugget, albeit it was a driver for Iverson's work, rather the scope of a notepad sheet is it. Proof of how the thing works in a few lines, BUT in the MIND! Perl and regexs, C to an extent do some of this, but not anywhere near as well as APL. And it WAS NOT an array handling only development: A Programming Language included powerful Tree operators, imo at that time, back in 1972 or so. It is a language to precisely and succintly describe any programming that might be done, vz the IBM 360 work, and do so elegantly in HUMAN terms. Modern code bases are such utter JUNK. Hooray for APL! What a joy to still have it, may it be reborn.
@bobvanwagner6099 Жыл бұрын
I learned APL in 1972 from Ken Iverson's book, in a class way over my head one would think, in "Non-numberical Methods in Computer Progamming". It was the first computer language I learned. There was then NO computer science department. Richard Orgass was the professor, an IBM Fellow. We spent the first semester and a month or so writing programs in long-hand on paper. All "desk debugged". Fortunately we could use TREES, which no implementation yet I think has proferred. My mind wrapped around the language, it was like thought itself. Towards the end of the year an IBM version we could use on the Selectric typewriter terminals came out, with the extraordinary typeball. Although I was the faster coder in the class, I nigh failed it because I wrote to zero origin in code, and given my many jobs then, I didn't have much clock time or lab time (the terminals were on a schedule) to dawn it out. Just before the transcript grades got locked in, a month into the summer, something popped in my mind, and I understood the drag force grounding my term assignment. I was able to quickly rewrite it, fat fingered it in at a terminal in Princeton, not many lines at all, and drove it , the Selecttic typeball printed on computer paper, at high rpm to New Brunswick and handed it to the good Professor. From failure to A in sixty seconds. The next year I was forced into Fortran for a Numerical Methods, so despiriting. dozens, hundreds of lines of painful coding to do the same thing as 3 lines of APL. Watfor. The language name said it all. Really. Waterloo Fortran 4. I did the more interesting assignments in APL for the joy of it, but had to drag them into Fortran to hand in. When in those next few years Computer Science got so big, big and arrogant, and I saw how it destroyed the joy of programming. Python today has some of it back, but the Dijkstras in so many powerful field fluxes won the day for this epoch with idiocies like C++ and Java (whereas C and early C++ are grand and mighty, modren C++ and C#) are all decorations enforced like Cobol's input and output sections, et all. Decorations obsfuscate code, beyond the sordids of spagetti go-to-ism. People who do NOT understand code well used goto's badly, I understand the lament about them. But the replacements are in fact worse, that being my own fact seen from observation of many millions of lines of modern code. Talk about optimizing the weighted graph -- the modern code of the big weak three C++, Java and C# (and Pascal prior) incredibly increase the nodes applications use by bad and middling, no-account minds coding, a node being here a process point, things needed to be done, not added by fancy decorations, They are weighted graphs but all so deoptimized by the predominate coding languages (holding off Python and Javascript, which do work in way like APL) that don't utitlize humanity's greatest tool: the mind well. So many nuisance nodes arising from chaos and ignorance, loss of focus on the goal that really needs be done. Sorry for the lenghy discourse. It is so frustrating, here fifty years later.
@JaliceTum Жыл бұрын
Thanks for uploading APL content especially this channel. APL will remain my favourite futuristic language.
@timspray559 Жыл бұрын
Nice job, cuz!❤
@Macronaut Жыл бұрын
Nice video, thank you (:
@srcery Жыл бұрын
Looking for the podcast on which Conor previously gave a top 5 favorite languages list.. Anyone have an episode link?
@zacharylarson1245 Жыл бұрын
Please do keep sharing about APL and vector programming... super fascinating! Here's a solution in Prolog: ```prolog all_equal([X|Xs]) :- maplist(==(X), Xs). ```
@kingjame2 Жыл бұрын
6 and a half years have passed since the video was published, has there been anymore progress on being able to translate APL to code that can run on GPUs or even normal computers?