Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

APL/J/K/NIAL

Name: Anonymous 2011-01-08 13:31

What's so special about array languages? When I look at them all I see is a decent Math library on top of a rather poor and antiquated language. On Wikipedia and sites of those languages people rave about how much more concise than other languages they are and how learning them expands your horizons and makes you a better programmer but except for higher order functions, which may have been special at the time APL was invented, but now are present in almost every modern language, I don't see any features that come close to what Haskell, ML, Scala and the likes offer.
Am I missing something?

Name: LISP/Arc/Scheme/CL 2011-01-08 13:42

What's so special about list languages? When I look at them all I see is a decent List library on top of a rather {i perfect} and {i advanced} language. On Wikipedia and sites of those languages people rave about how much more abstract than other languages they are and how learning them expands your horizons and makes you a better programmer but except for macros, which still are special as much as at the time LISP was invented, and are absent in almost every modern language, I don't see any features that Haskell, ML, Scala and the likes can do better.
Am I missing something?

Name: >>2 2011-01-08 13:48

Apart my S→BB failure, APL is a rather powerful language, you can do complex things with small effort, too bad it's even more a write-once/read-never language than Perl.
Don't know if array languages really are more mind-opening than functional languages, but you could just use Lisp and implement an array-based DSL with macros.

Name: Anonymous 2011-01-08 13:49

>>2
Lisp has some special languages features like compile time macros or first class continuation (at least scheme does).

Name: Anonymous 2011-01-08 13:53

>>3
How can you do complex things with small effort (relative to the effort you need in other languages of course) if they don't have any special language features?

Or do you mean that you have to type less thanks to one/two-character function names?
What really counts imho is semantic conciseness/level of abstraction and not the number of characters.

Name: Anonymous 2011-01-08 14:00

Name: Anonymous 2011-01-08 14:05

>>5
They do have semantic conciseness. You won't understand unless you learn one of the languages in question--and actually use it for things.

A point I'd like to make about having higher order functions; it isn't necessarily a big deal, but some languages benefit more than others. Some languages absolutely depend on it, and that will absolutely make you a better programmer.

The tl;dr is if you can ask "am I missing something" about a programming paradigm you haven't completed a few projects in, the answer is always "yes."

Name: Anonymous 2011-01-08 14:12

>>7
What is it that makes them concise? The fact that it has lots of functions that operate on arrays in its standard library isn't a language feature and you can get that from array-libraries in other languages too if you need it.
It has no typeclasses, no first class continuations, no pattern matching, no elaborate type system, no lisp macros, no lazyness , no nothing.
I don't see anything in features that goes past what even python has.

Name: Anonymous 2011-01-08 14:21

>>8
I don't mean to sound like a dick, but mentioning Python says to me you don't know anything about what high-order languages are like. Just looking at the features and even understanding them individually is totally pointless.

Name: Anonymous 2011-01-08 14:33

>>9
That's strange because when I look at the features of languages like Haskell, Scala, ML, oz, Scheme etc. I can easily tell that they are more powerful than most other languages out there.

Array languages dont seem to have any special language features whatsoever, so basically everything you can do with them you can quite easily implement as a library in any given language that supports the same basic stuff like higher order functions, i.e., python.

Name: Anonymous 2011-01-08 14:38

Python:
In 2011, it's used as ``bad, featureless, basic-in-the-bad-sense language example''
Take that, Guido!

Name: Anonymous 2011-01-08 14:53

>>10
Say FIOC again. I dare you.

Name: Anonymous 2011-01-08 15:01

>>10
Duh, it's a paradigm, it doesn't matter what language you do it in.
Even if you can do an ad hoc, informally-specified, bug-ridden, slow implementation of half of APL in Lisp, that won't change that APL comes out of the box chock-full of combinable array operating primitives.
The line between programming languages and libraries is fairly blurry as it is.

Name: Anonymous 2011-01-08 15:03

>>12
jew

Name: Anonymous 2011-01-08 15:33

Any sufficiently complicated Unix-like OS contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of the GNU       OS.

Name: Anonymous 2011-01-08 15:51

>>1
Look at it this way.

Consider a language like Scheme with no implicit partial application. Instead of writing something like map (+ 1), you have to write:

  (lambda (xs)
    (map (lambda (y) (+ 1 y)) xs))


Of course you can write a curry or partial function that makes this less verbose, but it still has to be an explicit function call. You can't just express it with syntax. In this way, Haskell is more expressive than Scheme.

J (I can't speak for the others) takes this a step further.

Now consider the Haskell functions liftA2 and liftM2. You can use either of these on functions as if they were defined as follows:

liftOp2 f a b = \x -> a x `f` b x

In J, these semantics are invoked implicitly whenever two functions are passed as arguments to an operator that normally expects scalars or arrays. This is only one example of the many implicit type promotions that make J very expressive when writing functions. You can implement much of this in Haskell, but it's painful (at least with Haskell's standard library) and the error messages you get are no better than J's reclusive "syntax error".

Still, this isn't that abstract, since it's still dealing with real things in the real world. Many believe that in this world, there are those things that are true, and those that obviously aren't. This divides reality into two extremes: truth and falsehood. But, since we have two extremes, logically one can imagine a boundary between those two extremes - the border between truth and lies. If one were to manipulate this border, suddenly things that were pure fantasy (flying pigs, for the sake of argument) have become reality - or things from reality have ceased to exist. This is how Yukari is said to have invaded the moon - by manipulating the border between truth and lies, as applied to the reflection of the moon on a pond, she was able to make the reflection of the moon into a manifestation of the actual moon, and so send her youkai army onto it. This is what's truly amazing about Yukari's power - the ability to manipulate the border between completely abstract concepts allows her to fundamentally change reality as we know it (at least in terms of two abstract concepts).

Name: Anonymous 2011-01-08 16:09

>>16
Why did you leave untouched the last paragraph of the kopipe?

Name: Anonymous 2011-01-08 16:20

>>17
Lazy evaluation

Name: HAXUS THE LAZY EVALUATOR 2011-01-08 17:13

HAXUS THE LAZY EVALUATOR

Name: Anonymous 2011-01-08 17:29

>>17
leave untouched the last paragraph
Xarnic Swede detected

Name: Anonymous 2011-01-08 17:54

>>20
Xarnic
Not a word.

Name: Anonymous 2011-01-08 18:06

[kuh-zar-nic]
–adjective
1.  That remembers in some way Xarn: Xarnic speech; A xarnic idea (that Xarn could have)

Name: Anonymous 2011-01-08 19:36

A xarnic idea (that Xarn could have)
For example, you might think about sucking a dick because you are homogay.

Name: Anonymous 2011-01-09 4:23

>>23
That's xarnic.

Name: Anonymous 2011-01-10 1:22

hax my xarnus

Name: Anonymous 2011-01-10 1:37

>>25
haiiiiiiiii~~ there i think ur answer is pretty funny so i decided to answe, and cuz i liek u so much i didn't sage! ahahaha lol  i really liek u

Name: Anonymous 2011-01-10 6:07

>>26
proggles~~

Name: Anonymous 2011-01-10 18:52

>>> How do you
>Quote
>>In /prog/?

Name: Anonymous 2011-02-03 0:30

Name: Anonymous 2011-02-04 17:32

Name: Anonymous 2011-02-04 17:41

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List