169 похожих чатов

Хорошо. Текст к картинке описывает, что это уже есть в

стандарте языка хаскель, а значит, думаю, есть и в самом хаскель.

Когда я просто объявляю тип переменной Int - какой из этих 3 инстансов по умолчанию подставляется?

Могу ли я как то объявить переменную, указав что у меня не просто int, а int, рождённый в соответствии с тайпклассом real?

5 ответов

9 просмотров

классы в ооп != классы в хаскеле

Я тоже новичок, но позволю себе попробовать ответить на ваш вопрос. Насколько я понимаю, невыделенные жирным шрифтом типы — это типы которые имеют свойства данного класса. То есть классы в хаскеле подобны не строгим биологическим классам, а “роду” в философском смысле — “кто умеет летать? — птицы, насекомые, некоторые млекопитающие — ага, записываем их в класс крылатых”

Отвечу "по существу" конкретно на этот вопрос. Для того, чтобы быть инстансом Real, тип Int должен содержать реализацию функции toRational. Оно есть тут https://hackage.haskell.org/package/base-4.16.0.0/docs/src/GHC.Real.html -- | @since 2.0.1 instance Real Int where toRational x = toInteger x :% 1 Для того, чтобы быть инстансом Integral, тип Int должен содержать реализации других функций, их список идёт сразу по ссылке выше, instance Integral Int where toInteger (I# i) = Int# -> Integer IS i и дальше вниз. Соответственно, когда ты пишешь Int, ты используешь тип, который УЖЕ является инстансами всех этих классов, а не инстансами какого-то подмножества.

xfides-Barabanov Автор вопроса

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
@FAssembler ты много с формами работал, как цикл обработки сообщений от окошек надо делать, чтобы IsDialogMessage не ломал ввод в эдиты и навигация по табам работала?
The Bird of Hermes
8
Карта сайта