Last update December 22, 2004

Bulat Ziganshin

Thank you for filling in so much of the Ruby column on LanguagesVersusD. -- JohnFletcher

Ruby was my favorite language before i found Haskell

Bulat, welcome. -- HelmutLeitner

Haskell corrections

>These are issues I think the chart is wrong about Haskell. Feel free to update these (or delete things and merge with the chart). btw why is the chart representing as having things in the standard library as yellow? I thought that that was better than having them in the core normally...

as i wrote, supporting feature in language itself can add: 1) special syntax, that can't be defined with use of functions 2) changes in language compiler/VM

i think that any additions to language that supported by at least one of these modifications must be marked with "Yes". so, "exceptions" and "threads" in haskell must be marked with "Yes" signs

>Range should probably be reworked

i just removed it

>For regex we should probably remove the No for all No entries or make all the empy ones No.

if you know that some language have regex's built in language or in a library that is a part of a language, you can mark that. haskell'98 don't supports regex's, ghc supports it, hugs supports, but only on Posix platforms. so imho haskell must be marked as "no". btw, for other features a used mark "yes"/"lib" if both ghc and winhugs in current versions supports this feature (for example, threads and "Direct access to C" using FFI)

>I think we are meaning different things by VM. GHC generated code has VM by the definition of 1) including user level threads 2) garbage collection 3) using a specific calling convention for functions and exceptions. But not VM in the sense of an executable being an interpreter + bytecode.

i think that you are right for this. other languages, such as C and Delphi also uses some form of RTL. we must consider this as "ability to create standalone EXEcutables"

and for some other features: - Haskell don't support function overloading without using classes - what lib can be used for "dynamic class loading"? - what mean "multiple dispatch"? - if we think that haskell "independent of macro preprocessor", then we must agree that haskell don't supports "conditional compilation"

and, we can replace our discussion with a "Word about Haskell":

Haskell is pure functional language, which features: - lazy evaluation - static typing with compiler's ability to infer types - ...

Some features in the table above not a part of language, but can implemented with following libraries: Regex - see Template - see template haskell - Reflection - see

FrontPage | News | TestPage | MessageBoard | Search | Contributors | Folders | Index | Help | Preferences | Edit

Edit text of this page (date of last change: December 22, 2004 21:37 (diff))