deniok: (ухмыляюсь)
[personal profile] deniok
Приведите пример таких объявлений типа данных с конструктором данных T и сигнатуры функции f, что реализация
f (T x) = T x
проходила бы проверку типов, a
f x = x
нет.

Date: 2016-04-07 09:57 am (UTC)
From: [identity profile] john kozlov (from livejournal.com)
В голову приходит только дебильное:

data T = T (IO ())
instance Eq T where { _ == _ = True }

f = id

Теперь:

id $ putStrLn "abc" == putStrLn "abc" -- не компилируется
id $ T (putStrLn "abc") == T (putStrLn "abc") -- компилируется

Date: 2016-04-07 02:10 pm (UTC)
From: [identity profile] john kozlov (from livejournal.com)
Короче, я неправильно понял задание. Я прочитал f x = x как f x == x и задача кардинально изменила свой смысл. Поэтому и написал instance Eq

Profile

deniok: (Default)
deniok

February 2022

S M T W T F S
  12345
6789101112
13141516171819
20212223 242526
2728     

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 24th, 2025 03:20 pm
Powered by Dreamwidth Studios