top page > computer > haskell > web_lecture > for_programmer > tuple_sugar.html
更新日:
文責: 重城良国

タプルにおける構文糖

タプル関数

タプル(x, y)はふたつの引数x, yにタプル関数を適用していると考えられる。「考えられる」だけではなくそう書ける。

% ghci
Prelude> (8, 15)
(8,15)
Prelude> (,) 8 15
(8,15)

部分適用が可能だ。

Prelude> let put8 = (,) 8
Prelude> put8 15
(8,15)
Prelude> let put15 = flip (,) 15
Prelude> put15 8
(8,15)

(x, y)は(,) x yの構文糖だ。

型も同じだ。

Prelude> (8, 15) :: (,) Integer Integer
(8,15)

Maybe値の型であるMaybe Integerと同じだ。複合型だ。代数的データ型について学んでから説明する。

タプルの部分適用

flip (+) 15(+ 15)のように書ける。残念ながらHaskellの標準ではflip (,) 15(, 15)とは書けない。GHCの拡張機能TupleSectionsを使う。

Prelude> :set -XTupleSections
Prelude> (, 15) 8
(8,15)
Prelude> (8 ,) 15
(8,15)

ソースコードでは先頭に

{-# LANGUAGE TupleSections #-}

と書く。

「非カリー化」へもどる 「リスト: 列挙と蓄積」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics