Crowd a = Crowd {first :: a, second :: a, third :: a} deriving Functor
                  
                  
                  type Man = forall a. Crowd a -> a
                  
                  
                  
                  
                  
                  хочу написать такую функцию, но не знаю как
                  
                  
                  
                  
                  
                  forget :: Bounded a => Man -> Crowd a -> [Crowd a]
                  
                  
                  forget = undefined
                  
                  
                  -- forget first (Crowd _ s t) = [(Crowd f s t) | f <- [minBound..maxBound]]
                  
                  
                  
                  
                  
                  в комментарии к forget пример, как она должна работать. Но я не могу заматчить first.
                  
                  
                  
                  
                  
                  Если type Man выбран неудачно, то какой тут нужен на самом деле?
                  
                  
                
упрощу пример! как написать функцию new? data Crowd a = Crowd {first :: a, second :: a, third :: a} deriving Show newFirst :: a -> Crowd a -> Crowd a newFirst a c = c {first = a} newSecond :: a -> Crowd a -> Crowd a newSecond a c = c {second = a} -- newFirst = new first, newSecond = new second new :: (Crowd a -> a) -> a -> Crowd a -> Crowd a new = ???
Хм... Попробовал раскомментировать. Получил * Could not deduce (Enum a)
Обсуждают сегодня