[HN Gopher] APL Demonstration (1975) [video]
       ___________________________________________________________________
        
       APL Demonstration (1975) [video]
        
       Author : nequo
       Score  : 52 points
       Date   : 2024-06-25 16:42 UTC (1 days ago)
        
 (HTM) web link (www.youtube.com)
 (TXT) w3m dump (www.youtube.com)
        
       | dang wrote:
       | Related. Others?
       | 
       |  _APL Demonstration (1975) [video]_ -
       | https://news.ycombinator.com/item?id=32118279 - July 2022 (1
       | comment)
       | 
       |  _APL Demonstration (1975) [video]_ -
       | https://news.ycombinator.com/item?id=21104698 - Sept 2019 (51
       | comments)
       | 
       |  _APL Demonstration From 1975 [video]_ -
       | https://news.ycombinator.com/item?id=7817593 - May 2014 (7
       | comments)
       | 
       |  _APL demonstration 1975 [video]_ -
       | https://news.ycombinator.com/item?id=6155639 - Aug 2013 (1
       | comment
        
         | wood_spirit wrote:
         | The APL game of life video is another awesome thing worth
         | reposting :)
         | 
         | https://news.ycombinator.com/item?id=1041500
        
           | benji-york wrote:
           | I watch this video every couple of years. It is a thing of
           | beauty.
           | 
           | Direct link: https://www.youtube.com/watch?v=a9xAKttWgP4
        
         | sossupummi wrote:
         | I mean yeah but you can't comment them.
        
       | Pompidou wrote:
       | Regarding APL and array languages related topics I love theses
       | youtube channel :
       | 
       | https://www.youtube.com/@code_report
       | 
       | https://www.youtube.com/@arraycast
       | 
       | https://www.youtube.com/@bobtherriault
       | 
       | https://www.youtube.com/@tangentstorm
        
       | lbatista wrote:
       | Convolutional Neural Networks in APL
       | blog-{[?]x[?]x1-[?]}       backbias-{+/,[?]}
       | logistic-{/1+*-[?]}       maxpos-{(,[?])[?][?]/,[?]}
       | backavgpool-{2[?]2/[?]/4}[?]2
       | meansqerr-{/[?]2+/,([?]-[?])*2}       avgpool-{/[?]4{+/,[?]}[?](2
       | 2[?]2)[?]2[?][?]}
       | conv-{s-1+([?][?])-[?][?][?][?]+/,[?]x([?][?][?]){s|[?]|[?]}
       | [?][?]}       backin-{(d w
       | in)-[?][?][?]+/,w{([?]in)|(-[?]+[?]d)|[?]xd}  [?][?]w}
       | multiconv-{(a ws bs)-[?][?]bs{[?]+[?] conv
       | a}[?](0,([?][?]a))[?]ws}
       | 
       | https://dl.acm.org/doi/pdf/10.1145/3315454.3329960
        
         | dbcurtis wrote:
         | A friend once described APL as a "write-only language". You
         | make his case well :)
         | 
         | It is pretty easy to write unmaintainable APL, it seems to me.
        
           | 7thaccount wrote:
           | I'd bet money that I could figure out what this code is doing
           | easier than the equivalent in Python, which is my daily
           | driver. You just need to look up the symbols and piece it
           | together. Yes, that takes an extra step, but so did learning
           | any new language. Also, I can see all of this in one spot.
        
             | RodgerTheGreat wrote:
             | The value of being able to see the entire implementation of
             | a nontrivial program at once cannot be overstated. This is
             | the real magic of APLs: no unnecessary abstraction,
             | boilerplate, or structural fluff, just algorithms composed
             | from general high-level building-blocks.
        
           | mlochbaum wrote:
           | These are written in a generally basic and clean style
           | (avoiding tacit programming which is sometimes considered
           | hard to understand, e.g. function {s|[?]|[?]} instead of the
           | train (s||)). They're nice to read and I'd have no trouble
           | maintaining them. You just don't know the language.
           | 
           | conv looks like the hardest. s-1+([?][?])-[?][?] is the
           | result shape, number of subarrays with the length of [?] that
           | will fit in [?] in each dimension. Looks like
           | ([?][?][?]){s|[?]|[?]}"[?][?] is missing the "; the inner
           | function s|[?]|[?] drops [?] elements (left argument) and
           | then takes the first s, so it gets a length-s window of [?].
           | This is called on each possible index into [?], together with
           | the whole of [?], so it ends up getting all such windows.
           | Presumably s is expected to be larger than [?][?] so this is
           | the more efficient way to slice things. [?]+/,[?]x multiplies
           | by [?] and sums, ravelling with , before applying +/ to
           | collapse the dimensions and sum them all at once. Each
           | element is an array of shape s, so summing them gives a
           | result of shape s. There you go, multidimensional
           | convolution!
        
         | hello_computer wrote:
         | This is how it should have been done to begin with.
        
         | cmrdporcupine wrote:
         | Cool. Are there APL implementations which take good advantage
         | of GPUs or TPUs etc for optimizing matrix & vector operations?
        
           | abrudz wrote:
           | Yes, https://apl.wiki/Co-dfns
        
       | julienchastang wrote:
       | I've watched this video in the past. If I recall correctly, he
       | does not make a single typo or fat-fingering during the entire 27
       | minutes.
        
         | bumbledraven wrote:
         | On an APL keyboard no less!
        
       ___________________________________________________________________
       (page generated 2024-06-26 23:01 UTC)