Curry is an experimental functional logic programming language based on Haskell language. It combines the elements of functional and logical programming, including the integration of constraint programming. It is almost a superset of Haskell, lacking support, especially for overloading using type classes, which some implementations provide anyway as an extension of language, such as the Münster rainbow compiler.
Due to the absence of side effects, a functional logic program can be executed with different strategies. In order to evaluate expressions, Curry uses a variant of the narrowing strategy needed, which combines lazy evaluation with undetermined search strategies. Unlike Prolog, which uses backtracking to look for solutions, Curry does not establish a special search strategy. Therefore, there are Curry’s implementations, such as KiCS2, where the user can easily select a search strategy, such as backtracking, wide search, deep search, or parallel search.
Curl is an object-oriented programming language, designed for writing interactive web applications. It combines text markup, scriptwriting, and a fairly powerful computational mechanism, all in one unified framework. The language is mainly used to solve intra-corporate tasks, B2B, and B2C applications.
Curl is a markup language as HTML, meaning that plain text is shown exactly as text; but, at the same time, Curl includes the capabilities of object-oriented programming language, which include support for multiple inheritance.
Curl applications do not require the separation of information, style and behavior, as is done for HTML, CSS and JavaScript, although this programming style can be used in Curl, if necessary.
On the one hand, Curl can be used as an HTML substitute for presenting formatted text; on the other hand, its capabilities are not inferior to those compiled by object-oriented programming languages.
The language has been designed so that Curl applications can be compiled into the native machine code by using the JIT compilation and therefore could be built at a sufficiently high speed. Curl applets can be viewed with Curl RTE – an execution environment with extensions for web browsers. Currently, Microsoft Windows, Linux, and Macintosh platforms are supported.
Curl has the ability to work independently of applets for many years, meaning a web applet running on the user’s desktop does not depend on the browser window, as in Silverlight 3 and Adobe AIR.
Curl applets can also be written to run offline when disconnected from the network, computations with rare connections or occasionally connected computers.
Curl IDE is an application written in Curl itself.
The headquarters of Curl, Inc. is located in Cambridge, Massachusetts, and is a subsidiary of Sumisho Computer Systems Corp. The largest number of commercial users of Curl is in Japan and other Asian countries, but Curl is quite accessible in the West.
Curl is free for commercial and limited commercial use (see licensing). There is also a professional version that supports additional industrial-grade features.