例として、PureScriptの「Hello World」をお見せします:
module Main where
import Effect.Console
main = log "Hello, World!"
以下のコードはPerson
データ型とPerson
の文字列表現を生成する関数を定義します:
data Person = Person { name :: String, age :: Int }
showPerson :: Person -> String
showPerson (Person o) = o.name <> ", aged " <> show o.age
examplePerson :: Person
examplePerson = Person { name: "Bonnie", age: 26 }
各行は以下のように読むことができます:
Person
は1つのコンストラクタを伴うデータ型であり、Person
とも呼ばれる。Person
コンストラクタは2つのプロパティを持つオブジェクトを1つ受け取る。各プロパティは、String
型のname
とInt
型のage
である。showPerson
関数はPerson
を受け取り、String
を返す。showPerson
関数は、引数の解析によって実現される。まずはPerson
コンストラクタにマッチし、その後にオブジェクトのアクセサと文字列結合の結果を返す。examplePerson
はPersonオブジェクトであり、Person
コンストラクタに、nameの値としての文字列"Bonnie"とageの値としての整数26を与えることで作成される。
言語リファレンスの全容は以下に続きます: