data Color = HexColor Int | RGBColor Int Int Int | ColorString String deriving Show
data FontAttribute = Size Int | Face String | FontColor Color deriving Show
data Font = Font [FontAttribute] deriving Show
私はそうのようなものを構築する:
Font [Size 23,Face "Arial",Color (RGBColor 240 23 43)]
私の関心は持っていFontColor
データ/値のコンストラクタが入力することですFontAttributeには引数としてColor型が必要です。つまり、Colorは任意の種類のタグのジェネリック型属性であり、特定のタグは特定の属性のサブセットを持っています(この場合、FontにはFontAttributeがあり、Size、Face、FontColorなどがあります)。これを表現する明確な方法はありますか、それとも実装のサウンドですか?
「Font」を任意の数や組み合わせ、または「FontAttribute」で記述することができますか? 'Font [Face" Arial "、Face" Impact "]'はあまり役に立たないようです... – delnan
はい、有効なリストです。あなたはXHTMLとCSSで同じことをすることができます。私は、実装に依存していると思います。通常、ブラウザは最後の値を使用します。私はより多くのタイプの階層を心配していました。 –
したがって、FontColorコンストラクタで排他的に使用されるために、「Color」を制限したいのですか?それはあなたの懸念ですか? ところで、あなたは[FontAttribute]の周りに括弧は必要ありません。 –