Concepts
Core concepts
plu-ts is a strongly typed eDSL for generating Cardano Smart Contracts.
In order to allow the creation of efficient smart contracts, plu-ts is functional, allowing more control over the compiled result.
As a consequence of the functional nature of the language, everything in plu-ts is an expression.
eDSL concepts
eDSL stands for embedded Domain Specific Language.
What it means can be explained by analyzing the definition:
Languageexplains that is a programming language we are talking about.Domain Specificexplains that the language is meant for a specific set of tasks. The "Domain", or specific purpose ofplu-tsis the creation of Cardano smart contracts.embeddedmeans that it is a language inside another language. Whileplu-tsis a language on its own, it is built inside of the Typescript language (which is called the host language).
tip
When writing plu-ts code it is important to distinguish what parts of the code are native to Typescript and what parts are plu-ts.
Since Typescript is the host language, Typescript will be our starting point for learning about plu-ts.