为什么这样做
print (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True)
Run Code Online (Sandbox Code Playgroud)
虽然这不是
print (True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True)
Run Code Online (Sandbox Code Playgroud)
Yur*_*ras 11
因为有Show
15元组的实例:
Prelude> :i (,,,,,,,,,,,,,,)
data (,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o
= (,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o
-- Defined in `GHC.Tuple'
<<skip>>
instance (Read a, Read b, Read c, Read d, Read e, Read f, Read g,
Read h, Read i, Read j, Read k, Read l, Read m, Read n, Read o) =>
Read (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
-- Defined in `GHC.Read'
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g,
Show h, Show i, Show j, Show k, Show l, Show m, Show n, Show o) =>
Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
-- Defined in `GHC.Show'
Run Code Online (Sandbox Code Playgroud)
16元组没有:
Prelude> :i (,,,,,,,,,,,,,,,)
data (,,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o p
= (,,,,,,,,,,,,,,,) a b c d e f g h i j k l m n o p
-- Defined in `GHC.Tuple'
Run Code Online (Sandbox Code Playgroud)
查看文档
AFAIK实例是在ghc内部库中手工编写的,并且不太可能有人需要显示16元组.
这在Haskell Report Section 6.1.4元组中定义:
元组的大小没有上限,但是一些Haskell实现可能会限制元组的大小,并限制与较大元组相关联的实例.但是,每个Haskell实现必须支持最大为15的元组,以及Eq,Ord,Bounded,Read和Show的实例.Prelude和库定义了元组函数,例如最大为7的元组的zip.