Standart dizi paketindeki sınırlı dizilere benzer bir şey elde etmek, ancak repa dizilerini kullanmak istiyorum.Sınırlı bir veri türü tarafından dizine alınmış diziler onarılsın mı?
Bunu başarmanın güzel ve temiz yolu nedir? Ayrıca
import Data.Array.Repa
data C = A | F | L deriving (Eq,Enum,Ord,Bounded,Show)
data Ballot c = Ballot {
vote::Array U (Z :. Int) Int
} deriving Show
mkBallot::(Eq c ,Enum c,Ord c, Bounded c, Show c) => c -> Ballot c
mkBallot c = Ballot $ fromListUnboxed (Z :. max) (genSc c)
where
max = (fromEnum (maxBound `asTypeOf` c)) + 1
genSc::(Eq c,Enum c,Ord c,Bounded c,Show c) => c -> [Int]
genSc c = [ f x | x <- enumFrom (minBound `asTypeOf` c) , let f v = if x == c then 1 else 0]
showScore c b = index (vote b) (Z :. ((fromEnum c)))
I (sh için bir Shape örneği türetmek için çalıştık:
Bu
Denedim ama sınırların kontrol özel işlevler her şeyi sarma daha iyi bir yolu olmalı budur. C) Ancak hiçbir boşuna, veri tipim için Shape sınıfında bildirilen bazı arabirimlerin nasıl uygulanacağı konusunda kafamı alamıyorum. Soruyu bir başkasının bir yolu olduğu ümidiyle yazıyorum, ama değilse tekrar deneyeceğim. Teşekkür ederim!
Ben buna bir göz alacak. – user1105045