It is known that all functional languages share some basic properties, such as for programs with all the results using functions However, there are some fundamental differences, although there are recycling rather than repetition in the form of basic construction blocks. Lisp Lisp uses the same representation for both code and data, while ML has no standard representation of the ML code. An actor-based concurrency is produced in Erlang, Monad is in Haskell; Haskel creates a distinction between the pure type of system in between the pure and the unclean actions; ML does not.
What are the specific basics differences between other functional languages (Closer, F #, Arch, any other)? Fundamentally, I mean something that you develop in this language, and not for example, whether it is integrated with some broad spreading time.
Closing the top of my head:
- (aka Non-strict vs hard or call-by-need vs. call-by-value ): Before the function app , Or later, or the function logic that ever evaluated?
- : Does language work give side effects? Is it an unstable reference?
- : Does the language check type at time or at runtime?
- : On what basis does language support match the pattern?
- : Does the language provide a powerful code generation system?
- And: Is the thread / processes first-class abstraction? Does the language make many computations easy to run at the same time?
- "foreign" type : How stable is the static type system? GADTs? Dependent type? Linear type? System F?
Only the first two items are really unique to functional languages (i.e. almost all the necessary languages are eager and impure).
Comments
Post a Comment