>http://labs.google.com/papers/mapreduce-osdi04.pdf >http://www.zvon.org/other/haskell/Outputprelude/foldr_f.html
Haskell and Lisp are not mainstream languages. Like J and APL, they have many wonderful things to teach other languages, but "no one" uses them. >http://www.sgi.com/tech/stl/accumulate.html C and C++ don't have / , which is why it is in the STL. I could write / in almost any language (particularly one with macros or a preprocessor), but I'm specifically talking about mainstream languages building it into the syntax. Besides, I've had to read a lot of C++ and I've never seen the use of accumulate. >http://www.python.org/dev/peps/pep-0289/ I'll grant python and perl, having large user bases. Perl in particular has two operators, map and grep , which act like f/ and (g@:#~ f) respectively. But, at least in Perl, they're significantly less efficient then their for/foreach/while/do counterparts. And again, they don't enjoy the ubiquity in user code that / and # do in J and APL (except in MY perl code). Perhaps they're not marketed well enough. I know Perl6 will have lots of (APL-inspired) nice operators. I'm hoping its release will make the hoi polloi see the light. >and the list goes on... Currently, the majority of commercial code* is written in C, C++, Java, C#, and VB (6 and .NET). AFAIK, none of those languages have / built into the syntax. In fact, the only mainstream language I know which has it is SQL, which does it haphazardly (nonetheless, it may partially explain SQL's popularity). So, unless the rest of the list contains those languages, it's almost meaningless. If there's a way to build it on top of the language, fine. Rather than the rest of the list, I'd like to see (sourced) statistics showing what proportion of the commercial and industrial programs implemented in those languages leverage the construct (and to what extent within each program). Better yet, I'd like to know what proportion of professional programmers understand and use it**. -Dan * If you don't believe me, search monster.com (or any other job listing) for programming positions and the languages they require. The names of languages other than these are likely to appear in the same job description as the word "legacy". ** I'm going to be suspicious of any programmer who knows it's available and uses "sometimes" , because I will then doubt he understands it. It's an abstraction of for like for is an abstraction of goto . Of course, it's not always the right tool. But it'll handle /most/ loops, not /some/. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
