Haskellの作り

  • 資料はHaskell 2010 Language Report(こちら)
  • I Haskell 2010 Language
  • 構成要素
    • Identifier(識別名)を付けて扱うもの(Namespaceに関すること)
      • 6種類の名前をつけて扱うもの
        • Values(値)
          • (1) Variables(変数)
          • (2) Constructors(構成子・コンストラクタ)
        • Type(型)と呼ばれるもの
          • (3) Type variables(変数型)
          • (4) Type constructors(構成子型・コンストラクタ型)
          • (5) Type classes(クラス)
        • (6) Modules(モジュール)
      • Identifier(識別名)の付け方のルール
        • 小文字始まり
          • Variables
          • Type variables
        • 大文字始まり
          • Constructors
          • Type constructors
          • Type classes
          • Modules
        • 予約語
          • case, class, data, default, deriving, do, else, foreign, if, import, in, infix, infixl, infixr, instance, let, module, newtype, of, then, type, where, _,
      • 名前をつけないで使うもの
        • Operator(演算子)
          • Operator symbols(演算子記号)で表記される
          • 3種類
            • Variableのoperator symbols
            • Constructorのoperator symbols
            • 予約語としてのoperator symbols
              • .. , : , :: , = , \ , | , <- , -> , @ , ~ , =>
  • 書き方のルールと構造
    • 小さい作りから大きい作りへ階層構造
      • 語彙構造(lexical structure)
        • 単語(Identifier(名前)、演算子記号)の書き方に関するルール
      • 表現(expressions)
        • 単語をどう並べるとどういう意味になるかに関する書き方ルール
      • 宣言(declarations)
        • expressionsを並べて複合的な意味を持つ宣言にするための書き方ルール
      • モジュール(module)
        • Importの対象となるのがモジュール。モジュールとして取り扱われるための、書き方ルール
  • II Haskell 2010 Libraries