Learn You a Haskellには、サンプルEnum
タイプがあります。
data Day = Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday
deriving (Eq, Ord, Show, Read, Bounded, Enum)
しかし、Day
値コンストラクターに隣接する空白なしで範囲構文を使用して s のリストを取得しようとすると、次のエラーが発生します。
ghci> [Thursday..Sunday]
<interactive>:30:2:
Failed to load interface for `Thursday'
Use -v to see a list of the files searched for.
<interactive>:30:2:
A section must be enclosed in parentheses thus: (Thursday.. Sunday)
空白を使用すると、すべてが機能します。
ghci> [Thursday .. Sunday]
[Thursday,Friday,Saturday,Sunday]
この動作の理由は何ですか (たとえば、Int
s の範囲は空白を必要としません)?