@haskellru

Страница 206 из 1551
Ilya
21.02.2017
19:21:25
А не lifted это Int#

Alexander
21.02.2017
19:21:46
да

я чуть с boxed не попутал

Google
Alexander
21.02.2017
19:22:05
unlifted это #

есть unlifted boxed, нпример ByteArray#

Kit
21.02.2017
19:23:43
bottom (отсуствие значения) населяет все lifted типы
а разве не liffed типы bottom не населяет?

Alexander
21.02.2017
19:23:55
не населяет

let loop# = loop# in loop# не сделать вроде как

Kit
21.02.2017
19:25:39
В теории множеств есть типы?
там есть принадлежность

? animufag ?
21.02.2017
19:28:43
там есть принадлежность
Переформулируй изначальное предложение со словом принадлежность вместо слова тип

обчный intiial object =)
Что это значит

Kit
21.02.2017
19:30:52
Переформулируй изначальное предложение со словом принадлежность вместо слова тип
Все haskell'ные типы задаются как алгебраические множества

Artem
21.02.2017
19:30:53
Что это значит
пустое множество является инициальным объектом в категории множеств, то есто это понятие из теории категорий, которую можно использовать, чтобы понимать типы

Ilya
21.02.2017
19:34:33
Получается формально bottom не имеет типа
Мне нравится думать о типах в Haskell как о метках на значениях. Вот изначально у нас есть просто значения, куча разных значений. А потом мы говорим, давайте теперь любое значение всегда будет содержать одну метку на себе, и только одну. Тогда типизированные (мономорфные) функции соглашаются принимать значения только с определенными метками на них, и возвращают значения других конкретных меток. Так идет вывод типов. Полиморфные функции - это как бы объединение "под одной крышей" бесконечного числа мономорфных функций, каждая из которых опять же принимает и выдает только конкретные метки. Но потом мы берем и добавляем еще одно специальное значение bottom, и говорим, что оно содержит не одну метку, а сразу все, все возможные. Соответственно, любая функция теперь может это значение вернуть. Это всё лично моё понимание, на корректность не претендую.

Kit
21.02.2017
19:40:03
вроде тут говорили, что bottom не является элементом, а подмножество

Google
? animufag ?
21.02.2017
19:41:29
Хорошо. Значит над хаскельными типами определено некоторое отношение мол мэйби подтип монады, монада подтип апликатив и у всех наверху этого отношения будет стоять боттом (ну или скорее внизу :))

У боттома нет значений так что вроде звучит красиво

Ilya
21.02.2017
19:42:16
А наверху стоит топ

Внезапно

Kit
21.02.2017
19:43:12
верха не существует же

Ilya
21.02.2017
19:43:49
The top type in the type theory of mathematics, logic, and computer science, commonly abbreviated as top or by the down tack symbol (⊤), is the universal type, 

верха не существует же
Только в хаскелле

Alexander
21.02.2017
19:44:40
Proxy ?

Ilya
21.02.2017
19:45:23
Какой там

Alexander
21.02.2017
19:45:25
а он просто terminal, terminal соотвествует Top или нет?

Ilya
21.02.2017
19:45:40
Int ведь не имеет тип Proxy

Типа любое значение является значением типа top

Igor
21.02.2017
19:47:19
трудно понимать, когда используют просторечие "типа" в темах про типы =_=

Ilya
21.02.2017
19:47:51
Извиняюсь

Мне кажется, что топ в хаскелл - это forall

Что если бы мы писали функцию id как id :: Forall a => a -> a Где Forall - это универсальный тайпкласс, для которого автоматически делается инстанс для каждого типа, и этот тайпкласс не содержит ни одного метода

Вроде норм

Ilya
21.02.2017
19:58:10
Всем

Google
? animufag ?
21.02.2017
19:59:05
Ты можешь андефайнед передать в любую функцию и вернуть из любой функции

Ilya
21.02.2017
19:59:22
Боттом - это одно значение всех типов на свете Топ - это один тип всех значений на свете

Двойственность такая

Ilya
21.02.2017
20:01:19
В haskell это проще понимать как особое значение

Потому что нет подтипов и надтипов

? animufag ?
21.02.2017
20:01:36
Нельзя тип назвать значением

Нужно договориться

Ilya
21.02.2017
20:02:21
Хорошо, как тогда тип может населять другой тип? В haskell

? animufag ?
21.02.2017
20:02:29
В пределах нас 6ти человек

Ilya
21.02.2017
20:02:32
Bottom населяет Int

? animufag ?
21.02.2017
20:03:03
незначение населяющее типы

ну то что пустое множество является подмножеством любого множества же никого не напрягает?

Ilya
21.02.2017
20:03:26
Да меня уже ничего не напрягает:)

Хорошо, пусть будет не-значение

Alexander
21.02.2017
20:03:45
ну bottom это не значеие

это результат for some definition of результат вычисления

eugene
21.02.2017
20:04:38
Google
? animufag ?
21.02.2017
20:05:43
А где-то можно...
Если тип включает в себя значение он всё ещё тип. Или я не так понял?

eugene
21.02.2017
20:06:41
Если тип включает в себя значение он всё ещё тип. Или я не так понял?
В dependent types языках типы и значения не различаются.

Ilya
21.02.2017
20:07:12
Просто насколько я себе представляю, в ванильной теории типов никаких тайпклассов нет. Есть только типы, подтипы и надтипы. Но в хс решили, что удобнее сказать, что ТИП у значения может быть только один (пока забыли про боттом), а для объединения значения разных типов будем юзать тайпклассы

? animufag ?
21.02.2017
20:07:22
Ilya
21.02.2017
20:08:29
Ну академическая

Mansur
21.02.2017
20:09:26
какая из?

их много: https://en.wikipedia.org/wiki/Type_theory#Systems_of_type_theory

Ilya
21.02.2017
20:10:05
Ну вот откуда эти все top и bottom

Kit
21.02.2017
20:11:14
надо все-таки смириться, что haskell вдохновлялся теорий категорий

Admin
ERROR: S client not available

? animufag ?
21.02.2017
20:12:25
Mansur
21.02.2017
20:13:04
Ну вот откуда эти все top и bottom
т.е. в простом типизированном лямбда-исчислении с подтипами с добавлением Top и Bottom?

вроде это самая простая с Top и Bottom ;)

Ilya
21.02.2017
20:14:33
вроде это самая простая с Top и Bottom ;)
Послушаю умного человека:) значит она

А в какой-нибудь теории типов есть тайпклассы?

? animufag ?
21.02.2017
20:15:27
Кажется здесь была ирония

eugene
21.02.2017
20:16:10
Google
? animufag ?
21.02.2017
20:16:11
Пускай пока что будут типы и порядок между ними

И вот у этих типов будет верх или низ?

eugene
21.02.2017
20:17:29
И вот у этих типов будет верх или низ?
Зависит от того как определишь порядок

Mansur
21.02.2017
20:17:32
А в какой-нибудь теории типов есть тайпклассы?
ввести соответствующие правила и они появятся. Проблема в том, чтобы потом показать, что они ничего не ломают в теории

? animufag ?
21.02.2017
20:17:56
Ну по крайней мере тип которому все остальные являются подтипом

Mansur
21.02.2017
20:19:04
полагаю, можно посмотреть статьи какого-нибудь Wadler-а про это :)

? animufag ?
21.02.2017
20:19:27
Ладно

Mansur
21.02.2017
20:19:35
Ilya
21.02.2017
20:20:01
Типа ребята закругляемся. Тут теоркат

? animufag ?
21.02.2017
20:21:47
Ладно этот всё таки похоже больше из области значений чем из области типов

Несмотря на то что англоязычная цитата ли Александра говорила строго об обратном

Ilya
21.02.2017
20:22:17
А мне всё же не даёт покоя, что (head []) и (length $ repeat 1) считаются чем-то одинаковым!!!

Недавно мне показалось, что я это понял, но всё же нет:(

Mansur
21.02.2017
20:24:42
Ладно этот всё таки похоже больше из области значений чем из области типов
есть отношение "a имеет тип A" (± нюансы) и есть отношение "тип A является подтипом типа B", это два разных отношения

Ilya
21.02.2017
20:26:31
Несмотря на то что англоязычная цитата ли Александра говорила строго об обратном
В теории типов bottom это пустой подтип любого типа, но в hs я видел запись в учебнике data Int = undefined | Int#, и пусть меня первым бросит камень тот, кто назовет это чудо-юдо слева от "|" типом

? animufag ?
21.02.2017
20:26:49
Ну например любой тип является подтипом ботом

Ок?

Mansur
21.02.2017
20:27:13
есть следующее правило типизации: для любого типа T тип Bottom является подтипом T (Bottom :< T)

Ilya
21.02.2017
20:28:32
Вот. Херня!

Страница 206 из 1551