Skip to content
DAML By Example

Hello World

-- HelloWorld.daml
module HelloWorld where

-- A top-level value with an explicit type signature.
-- The colon : means "has type".
greeting : Text
greeting = "Hello, World!"

-- A function: takes a Text, returns a Text.
-- <> is the string concatenation operator.
greet : Text -> Text
greet name = "Hello, " <> name <> "!"

-- Function application uses spaces, not parentheses.
result : Text
result = greet "DAML"   -- evaluates to "Hello, DAML!"

Key points

Module structure

  • module Name where is required as the first non-comment line. The module name must match the filename exactly.

Types & syntax

  • The single colon : means "has type". Type signatures are optional but strongly recommended.
  • Function application uses spaces: greet "DAML", not greet("DAML").
  • <> concatenates Text values.

Immutability

  • DAML has no mutable variables. Every binding is immutable.
  • There is no main function. Top-level values are definitions, not sequential statements.