0
ответов

Подпись типа Haskell с несколькими ограничениями класса

Как я могу иметь несколько ограничений класса, поэтому, если A является Eq, а B является Num, я мог бы сказать либо f :: Eq a => a -> b` или f :: Num b => a -> b Итак, как я могу иметь Eq a => и Num b =&...
вопрос задан: 21 March 2017 16:18
0
ответов

Почему так редко используются сигнатуры типов в предложениях where?

Помогает ли это компилятору в оптимизации или это просто лишняя работа по добавлению дополнительных сигнатур типов? Например, часто можно увидеть: foo :: a -> b foo x = bar x где bar x = undefined Скорее ...
вопрос задан: 16 May 2012 00:51
0
ответов

Сигнатура типа комбинатора не соответствует сигнатуре типа эквивалентной ему лямбда-функции

Рассмотрите этот комбинатор: S (SK) Примените его к аргументам XY: S ( SK) XY Он сокращается до: XYI преобразовал S (SK) в соответствующие термины Lambda и получил следующий результат: (\xy -> xy) I ...
вопрос задан: 6 March 2012 21:28
0
ответов

Почему в Haskell нельзя ставить подписи типов в объявлениях экземпляров?

Я люблю ставить подписи типов для всех определений верхнего уровня в своем коде. Однако подписи типов в объявлениях экземпляров, похоже, не разрешены, и если я их поставлю, то получу сообщение "Misplaced type signature" ...
вопрос задан: 3 December 2011 11:48
0
ответов

Использование объявления типа «Может быть» в Haskell [вопрос новичка]

Я начал экспериментировать с Haskell и столкнулся с проблемой. qqq - это функция, которая должна печатать одну строку, если вызывается с «Ничего», и печатать другие вещи, если вызывается с «Просто что-то». Первый ...
вопрос задан: 16 July 2011 10:06
0
ответов

Siyahılar üçün tip imza növləri və s.

Aşağı ingilis dilində aşağıdakı tip imzaları necə təyin edərdiniz: Ord a => ... Eq a => ... Num a => ... Bunların mənasını təsvir edə bilərdinizmi və fərqlərin nə olduğunu mənə bildirə bilərsinizmi ...
вопрос задан: 15 June 2011 03:42
0
ответов

Перегрузка сигнатур функций haskell

При компиляции я получаю следующее сообщение об ошибке: Duplicate type signature: weightedMedian.hs:71:0-39: findVal :: [ValPair] -> Double -> Double weightedMedian.hs:68:0-36: findVal :: [ValPair] ->...
вопрос задан: 25 May 2011 03:29