Clojureのkeyword
:
で始まるtoken
e.g. :hoge
Clojureのキーワードは、シンボルの一種で定数のように扱われます。データのラベルやフィールド名として使われます。
Clojureで :から始まる部分
は「キーワード」と呼ばれます。キーワードはシンボルの一種で、名前を持つ定数のようなものです。
例:
clojure{:id "emp1"
:schedule :monthly
:pay-class [:salaried 5000]
:disposition [:mail "name" "home"]}
キーワードの特徴:
イミュータブル: キーワードの値は変更されません。
自己評価的: キーワードはそのまま評価され、他の場所で同じ意味を持ちます。
効率的: キーワードは内部的に効率的に処理されます。
Haskellでの表現:
Haskellにはキーワードという概念はありませんが、代わりにデータ型やレコードを使って同様の構造を表現できます。
haskelldata Schedule = Monthly | Weekly | Biweekly deriving (Show, Eq)
data PayClass = Salaried Int | Hourly Int | Commissioned Int Float deriving (Show, Eq)
data Disposition = Mail String String | Deposit String String | Paymaster String deriving (Show, Eq)
employee1 :: Employee
employee1 = Employee
{ empId = "emp1"
, schedule = Monthly
, payClass = Salaried 5000
, disposition = Mail "name" "home"
}