What is hyperizing?

I've seen this in the code, and all I could find is people talking about things not having it and something being hyperized in the code (proc.hyper), I think?

I think this is it:

Is hyperizing just a fancy name for expanding lists out, and calling something multiple times?

Hyperizing uses hyperblocks. Check out this post from jens describing them in the Snap!6 release announcement from a while ago.

Maybe to start with a simpler example than the one quoted from Jens,
untitled script pic


"Hyperize" means "convert a block that originally worked only on non-list values to accept list inputs and treat them as in these examples."

Having read again about it in the official Manual, I have for the first time read the Appendix B, too.

P. S.
I found this factoid about the / sign in APL on Wikipedia:

Brian introduced us all to the array-based programming paradigm and did an awesome job at sending around several "Readers Digest" versions of the APL manual along with dozens of examples outlining how everything should work. This goes back to @bh's youth when he actually met and ended up working for Ken Iverson - the APL inventor - himself at the IBM lab in Armonk, NY. The the term "hyperblocks" was coined by @bromagosa who found the concept of list comprehension being referred to as "hyper operators" in the Raku programming language (formerly named Perl 6 - look it up, it's cool!). There they don't say "hyperizing", but rather "hypering" or even "hyping" (which I think is very cute!). When we say "hyperizing" we're mostly talking about the process of overloading Snap's existing reporters with linear algebra functionality, i.e. letting them also accept lists as inputs. As of the upcoming v9 release this process is mostly complete, and there are only very few non-hyperized reporters remaining. This was Brian's original vision (even back when Brian and I first began working on Snap!/BYOB together). I remember the two of us sifting through a well-used APL manual in Brian's basement deciding that that's what we're going to do in Snap. Of course it only took us a dozen or so years to actually do it, haha!

I know you must be busy finishing the upcoming v9 release, so I appreciate that you took time to reply and share fun facts about Brian meeting inventors of APL in his youth, Bernat's coining the "hyperblocks" inspired by Perl 6/Raku, and all other interesting factoids because I enjoy reading about them. Happy next dozen years of making Snap!

P. S.
Below is my discussion about the origin of 'hyper' (in context of math and computer operations) with ChatGPT 'who' has clarified it to me a bit.

open/close the chat

Me:
You compared the term 'hyper' in Raku's context (signifiying the ability to operate on multiple elements simultaneously) as being "similar to how hyperlinks connect various resources". This comparison sounded somewhat strange to me.

So I checked the Wikipedia article on 'Hyperoperation,' and it appears that the term 'hyper' was used in mathematics long before the internet and hypertext came into existence."

ChatGPT 3.5 (the free version):
You are correct that the term 'hyper' in mathematics, particularly in the context of hyperoperations, predates the advent of the internet and hypertext. The term has been used in mathematics to describe a sequence of operations that extend beyond the usual arithmetic operations of addition, multiplication, exponentiation, etc.

In the context of Raku, the term 'hyper' is used to indicate a parallel or concurrent operation that can be performed on multiple elements simultaneously.

While there may be similarities in terminology, it is important to note that the specific use of the term 'hyper' in Raku's context is not directly related to the historical mathematical concept of hyperoperations. It is merely a naming convention used within the programming language to convey its parallel and concurrent processing capabilities.