
"Ch" == Ch A Herrmann
writes: it's a BottomthGL language :)
Ch> That's a religious statement. I was looking for some strong Ch> arguments for the nonbelievers that Haskell is a 5GL. But what about nonbelievers in language classification by generation? As already mentioned you can write algorithms in Haskell (3GL), embed a DSL in it and write a program in that DSL or in several DSLs (4GL). AFAIK Mathematica is not a logic programming language, thus all its features can be implemented in Haskell as library, will be Haskell a 5GL in this case I'm looking for an honest classification. The aim of the GLs is, as I think, the degree of abstraction. The question is, how much *intelligence* provided by preprocessing, libraries etc. is permitted. Personally, I think Haskell should be a 5GL because Prolog is a 5GL. What Prolog really provides concerning automatic problem solving is little: equation solving in term algebra; you can simulate that in Haskell without much effort. On the other hand, I saw Haskell classified as a 3GL. The problem is that Haskell often exposes
Max Vasin wrote: the algorithmic structure. What people often forget is that Prolog programs in non-trivial situations are likely to fail if you do not prescribe the evaluation order, by features like the cut which destroy the declarative semantics. People also forget that arithmetic constraints in Prolog have to be directed (input/output variables), no difference to Haskell. My argumentation is: Prolog is a 5GL & Haskell is more abstract than Prolog => Haskell is a 5GL Some of the language features in Haskell that contribute to this abstraction are: laziness, pattern matching with guards, list comprehensions, type classes Please note that this is not a philosophic discussion. If Haskell is a 3GL, than it is at the same level with Java and since Java is more common, people think they should always use Java. Haskell as a 5GL will tell people: this is a language in which you can solve problems simpler and safer and it will encourage people to try to solve problems instead of resigning due to the complexity of the problem. Cheers -- Christoph