XDuce is a programming language built for efficient XML data processing, with a focus on type safety. It is tailored to handling complex XML documents with ease.
Among the key features of XDuce are its regular expression types, which operate similarly to Document Type Definitions (DTD), and its powerful notion of subtyping, which allows for substantial flexibility in programming, as well as schema evolution and integration. Additionally, XDuce supports regular expression pattern matching, which makes use of if-expressions, tag-checks, and subnode extraction.
The latest release of XDuce also includes support for parametric polymorphism. This update allows for types to contain type variables, which can be replaced with substitution forms. Additionally, functions can now be polymorphic, with type parameters and result types that can mention such parameters. In an exciting development, an application to polymorphic functions no longer requires type arguments, as they are now inferred automatically.
However, XDuce does have a few restrictions when it comes to polymorphism. Type variables are only able to be ranged over by one-element types, and marking-ambiguous type parameters will yield a warning. Patterns are also unable to mention type variables, and a substituting type cannot mention a recursive type name.
Despite these restrictions, XDuce remains a powerful tool for processing XML data, providing a reliable and efficient way to manipulate such documents with ease.
Version 0.5.0: N/A