|
|
|
|
|
by hoosieree
695 days ago
|
|
Disclaimer: I'm no expert, just an enthusiast. For me, the feeling of being well-designed or expertly crafted is what sets the array languages apart. Learning one concept often (intuitively, for me at least) extends to many other parts of the language. For example, in Q the comma operator concatenates arrays: q) 1 2 , 3 4 5 // returns 1 2 3 4 5
...but it also merges dictionaries (duplicated key `x gets the new value): q) (`a`b`c!1 2 3),`c`d!4 5
a| 1
b| 2
c| 4
d| 5
...and also joins tables by row. Sure this is "just" operator overloading, but it's so deeply ingrained in the language it doesn't feel jarring or bolted-on like in other languages.Building a program is less about crafting bespoke abstractions and more about using the existing building blocks, which leads to a semantic uniformity that's rare to find in other languages. Or at least, it's easier to get your job done using only built-in features and not have to resort to custom abstractions. |
|