Entry tags:
id да не id
Приведите пример таких объявлений типа данных с конструктором данных T и сигнатуры функции f, что реализация
f (T x) = T xпроходила бы проверку типов, a
f x = xнет.
f (T x) = T xпроходила бы проверку типов, a
f x = xнет.
no subject
data T = T (IO ())
instance Eq T where { _ == _ = True }
f = id
Теперь:
id $ putStrLn "abc" == putStrLn "abc" -- не компилируется
id $ T (putStrLn "abc") == T (putStrLn "abc") -- компилируется
(no subject)
no subject
data T = T Int Int
. Или имеется в виду что-то другое?(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
no subject
no subject
map f (x:xs) = f x: map f xs
map f xs = xs -- нельзя, т.к. xs не того типа
А в чистом виде - функтор Const.
data Const a b = Const a
type T = Const A
(no subject)
(no subject)