[Haskell] Вопрос про основной тип
От: Didro Россия home~pages
Дата: 07.11.08 09:14
Оценка:
Добрый день,

"Существование и единственность основного типа являются отличительным признаком системы типов Хиндли-Милнера" [1]


Имею:
  f :: Double->Double
  f 1.0 = 1.0
  > f 1.0
  > 1.0

  f::a->a
  f x=x
  > f 1.0
  > 1.0

  f::a->a
  f 1.0  =1.0
  > Could not deduce (Fractional a) from the context ()  arising from the literal `1.0'
  >   Possible fix:
  >      add (Fractional a) to the context of the type signature for `f'


Но ведь ":t 1.0" дает класс типа "(Fractional a)=>a".
Вопрос — какое требование системы типов я нарушил в последнем случае ? Мне думалось, что я указал, что "функция f принимает значение любого типа и возвращает значение этого же типа", видимо это не так.

Спасибо
haskell type inference
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.