क्या एक संख्यात्मक तर्क के साथ एक प्रकार बनाना संभव है? यानी अगर मैं एक निश्चित बिट-चौड़ाई के साथ पूर्णांकों का एक प्रकार बनाने के लिए करना चाहते हैं: newtype FixedWidth w = FixedWidth Integer
addFi
सबसे पहले, मैंने कुछ सामान्य प्रकार-स्तर प्राकृतिक संख्या सामग्री के साथ शुरू किया। {-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
मेरा प्रश्न शायद एक उदाहरण के रूप में व्याख्या करने के लिए सबसे आसान है: type family Take (n :: Nat) (xs :: [k]) :: [k]
type instance Take 0 xs = '[]
type instance Take (n+1) (x ': xs) = x ': Take
का उपयोग कर पूर्णांक को पियानो संख्याओं में कनवर्ट करना यह a question I asked almost two years ago का अनुवर्ती है। मैं अभी भी एक छोटी रैखिक बीजगणित पुस्तकालय लिखने के लिए प्रकार प्रणाली के साथ प्रयोग