Описание тега monomorphism-restriction
Ужасное ограничение мономорфизма в Haskell.
1
ответ
Запутанные типы в ghci
Вот мой код: n = [(a,b) | a <- [1..5],b <- [1..5]] calcBmis xs = [bmi | (w, h) <- xs,let bmi = w / h ^ 2] При попытке применить calcBmis в nЯ получаю следующую ошибку: *Charana> calcBmis n <interactive>:220:1: No instance for (Frac…
10 окт '15 в 13:07
1
ответ
: спринт для полиморфных значений?
Мне интересно почему :sprint отчеты xs = _ в этом случае: Prelude> xs = map (+1) [1..10] Prelude> length xs 10 Prelude> :sprint xs xs = _ но не в этом случае: Prelude> xs = map (+1) [1..10] :: [Int] Prelude> length xs 10 Prelude> :…
03 фев '14 в 01:41
2
ответа
Длина счета Хаскелла с использованием ошибки типа броска фолдера
Попытка реализовать подсчет списков через функцию foldr lengthList = foldr (\x s -> s + 1) 0 выдает следующую ошибку * Ambiguous type variable `t0' arising from a use of `foldr' prevents the constraint `(Foldable t0)' from being solved. Relevant …
17 сен '18 в 13:43
0
ответов
Что делает определение предметом ограничения мономорфизма?
Почему на это определение влияет ограничение мономорфизма? z = \n -> n + 1 и это не так: z n = n + 1
21 фев '19 в 08:36
1
ответ
Странный тип функции
У меня есть вопрос новичка о типах в Haskell: иметь такую функцию: f i xs = (sort xs) !! i Как определить функцию f0 xs = f 0 xs без явного использования хз? Просто принимая f0 = f 0 не работает... GHCI показывает мне следующие типы:f :: Ord a =&g…
16 апр '14 в 20:12
2
ответа
Влияние ограничения мономорфизма на ограничения класса типов
Этот код ломается, когда объявление типа для baz добавлен: baz (x:y:_) = x == y baz [_] = baz [] baz [] = False Общее объяснение (см. Например, почему я не могу объявить предполагаемый тип?) Состоит в том, что это из-за полиморфной рекурсии. Но это …
25 ноя '11 в 14:33
1
ответ
'Ссылка' на функции класса типов
Я новичок, и я пытаюсь использовать Hoed для отслеживания оценок Haskell, потому что, возможно, это еще больше поможет моему процессу обучения. Я видел в их примерах код, подобный этому isEven :: Int -> Bool isEven = observe "isEven" isEven' isEv…
14 фев '19 в 15:55
1
ответ
Преобразователи в Хаскеле и ограничение мономорфизма
Я реализовал преобразователи в Haskell следующим образом: {-# LANGUAGE RankNTypes #-} import Prelude hiding (foldr) import Data.Foldable type Reducer b a = a -> b -> b type Transducer a b = forall t. Reducer t b -> Reducer t a class Foldabl…
11 янв '15 в 14:00
1
ответ
Когда я могу связать функцию с другим именем?
При работе в интерпретаторе часто удобно привязать функцию к имени, например: ghci> let f = (+1) ghci> f 1 2 Это псевдонимы f к функции (+1), Просто. Однако это не всегда работает. Один пример, который я нашел, который вызывает ошибку, пытаетс…
28 дек '11 в 12:24
1
ответ
GHCI - недоразумение по умолчанию
Я случайно увидел странное поведение во время проверки размера (minBound,maxBound) и "длина в десятичном представлении" различных целочисленных типов. Использование GHCi: Prelude> :{ Prelude| let mi = minBound Prelude| ma = maxBound Prelude| le =…
14 фев '17 в 18:22
1
ответ
Haskell умножить Int и вещественное число
Я имею coefficient :: ??????? coefficient = 1.0 а также val :: Int и я хотел бы сделать result :: ??????? result val coefficient = val * coefficient Какие сигнатуры типов и функции преобразования мне нужно сделать, чтобы это работало? Что я должен д…
13 ноя '12 в 09:58
1
ответ
Вывод типа Haskell для функторов
В последнее время я играл с Haskell и, в частности, с целой концепцией функторов. Чем больше я погружаюсь в это, тем больше моментов я получаю, и это определенно щекочет мои рецепторы допамина. Проблема, с которой я застрял, заключается в следующем.…
19 авг '15 в 05:24
2
ответа
Конкретный тип вывода с использованием функции uncurry
Я играл с uncurry Я работаю в GHCi, и я нашел то, что совсем не смог получить. Когда я подаю заявку uncurry к (+) функция и связать это с какой-то переменной, как в коде ниже, компилятор выводит его тип, чтобы быть специфичным для Integer: Prelude&g…
15 фев '11 в 01:04
1
ответ
Как обойти проблему с неоднозначностью, когда мономорфное ограничение включено *?
Итак, изучая Haskell, я натолкнулся на страшное мономорфное ограничение, довольно скоро, со следующим (в ghci): Prelude> let f = print.show Prelude> f 5 <interactive>:3:3: No instance for (Num ()) arising from the literal `5' Possible fi…
22 мар '15 в 07:46
2
ответа
NoMonomorphismRestriction помогает сохранить общий доступ?
Я пытался ответить на другой вопрос о полиморфизме против совместного использования, когда наткнулся на это странное поведение. В GHCi, когда я явно определяю полиморфную константу, он не получает никакого совместного использования, что понятно: >…
21 июн '12 в 20:05
1
ответ
Что такое XNoMonomorphismRestriction?
Эта страница использует $ ghci -XNoMonomorphismRestriction запустить интерпретатор haskell. Что значит XNoMonomorphismRestriction переключиться значит?
01 янв '11 в 18:04
4
ответа
Как напечатать тип полиморфной функции (или значение) в ghci с примененными правилами по умолчанию?
Когда я вхожу :t Команда в GHCi я вижу полиморфный тип: ghci> :t 42 42 :: Num t => t ghci> :t div div :: Integral a => a -> a -> a Но после того, как я на самом деле оцениваю такие функции, я вижу результат правил по умолчанию типа…
13 сен '17 в 09:37
0
ответов
Бессмысленная функция в Хаскеле
Как определить это без очков? let argmax m = (fst.(maximumBy (comparing snd)).(zip [0..])) m который работает как ожидалось. Наиболее логичным кажется просто отбросить m как это: let argmax = (fst.(maximumBy (comparing snd)).(zip [0..])) Работает дл…
24 мар '13 в 18:46
3
ответа
Почему 3 и x (которому было присвоено 3) имеют разные предполагаемые типы в Haskell?
Вывод типа в Haskell имеет некоторую кривую обучения (если не сказать больше!). Хороший способ начать обучение с простых примеров. Итак, следующее - это "привет мир" для вывода типов. Рассмотрим следующий пример: Prelude> :t 3 3 :: (Num t) => …
14 авг '11 в 05:10
1
ответ
Что такое ограничение мономорфизма?
Я озадачен тем, как компилятор haskell иногда выводит типы, которые менее полиморфны, чем я ожидал, например, при использовании бессмысленных определений. Похоже, проблема заключается в "ограничении мономорфизма", которое включено по умолчанию в бол…
10 сен '15 в 08:31