一個HTML字體標籤我有以下幾點:哈斯克爾代數數據類型
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)。有更清楚的方式來表達這個,或者是我的實現聲音?
是否可以創建由任何數字和組合或FontAttribute描述的Font? '字體[臉部「宋體」,臉部「影響」]'似乎並不是非常有用...... – delnan 2012-03-11 16:32:00
是的,任何有效的列表。你可以在XHTML和CSS中做同樣的事情,我認爲會發生什麼是依賴於實現。通常瀏覽器使用最後一個值。我更關心類型層面。 – 2012-03-11 16:35:04
所以,你想限制「顏色」專用於FontColor構造函數?這是你的擔心嗎? 順便說一句,你不需要[FontAttribute]周圍的parens。 – 2012-03-12 01:10:48