Questions tagged [kics2]

KiCS2 is a new implementation of the multi-paradigm declarative language Curry. KiCS2 compiles Curry programs into Haskell programs, i.e., it uses the Glasgow Haskell Compiler as its back end. Similarly to many other implementations of Curry, it also has an interactive environment (read/eval/print loop) to ease the development of Curry applications.

The benchmarks for KiCS2 shows that Curry programs without non-determinism are executed as fast as Haskell programs and the efficiency of non-deterministic programs can compete with or outperforms other existing implementations of Curry. The current implementation includes all the essential features of Curry like non-deterministic operations, logic variables and unification, encapsulated search, as well as advanced features like functional patterns and various search strategies. Furthermore, this implementation has been also used for non-trivial applications including web-based information systems like the module database for the curricula in computer science in Kiel.

1 questions
4
votes
2 answers

Compact vs full/verbose definition of the inverse combinator/operator in Curry

The rather fascinating 2013 introductory post to the Haskell based KiCS2 implementation of Curry by Wolfgang Jeltsch, A Taste of Curry, provides the following definition for the inverse combinator: inverse :: (a -> b) -> (b -> a) inverse f y | f x…