@haskellru

Страница 203 из 1551
Ilya
21.02.2017
14:34:31
λ> :t void void :: Void

Kit
21.02.2017
14:35:54
λ> :t void void :: Void
А какой тут Void который стандартный или который из ты определил?

Ilya
21.02.2017
14:35:59
Мой

Kit
21.02.2017
14:36:22
Все равно не вижу проблемы

Google
Kit
21.02.2017
14:37:19
Смотрится все ужасно. Уже три сущности с одним и тем же именем

Мой
Как у тебя с матикой?

Ilya
21.02.2017
14:38:10
Всёёё, я понял

Kit
21.02.2017
14:38:23
Просто хотел пример привести но он математический

Ilya
21.02.2017
14:38:35
Короче объясняю

Kit
21.02.2017
14:38:41
Давай

Ilya
21.02.2017
14:38:56
Модуль Data.Void не экспортирует конструктор Void

А только сам тип

Поэтому void так определить невозможно

newtype Void = Void Void void = Void void

Для стандартного Data.Void

? animufag ?
21.02.2017
14:40:03
а да ок теперь

Google
Ilya
21.02.2017
14:40:24
Я такую фишечку уже видел

? animufag ?
21.02.2017
14:40:40
только как это понять?

Ilya
21.02.2017
14:40:43
В главе про монаду ST

? animufag ?
21.02.2017
14:40:54
module Data.Void ( Void , absurd , vacuous , vacuousM ) where

как понять что тут только тип, а не конструктор

Ilya
21.02.2017
14:41:18
только как это понять?
Потому что не Void(..)

Если бы был Void(...), то значит с конструкторами всеми

А так только тип

Хотя конечно это похоже на тот еще хак:)

? animufag ?
21.02.2017
14:46:07
кстати насчёт экспортов: нельзя никак сказать чтобы не экспортился инстанс тайпкласса?

ну или чтобы он не импортился

Ilya
21.02.2017
14:50:37
Это я хз

? animufag ?
21.02.2017
14:50:50
и ещё один вопрос хотел задать, но уже сам нашёл ответ там в этих экспортирующих скобках можно писать ещё и module и соответственно какой угодно модуль экспортировать, что однажды меня серьёзно напрягло

Ilya
21.02.2017
14:50:52
Гугл по hiding instance молчит?

? animufag ?
21.02.2017
14:56:08
короче не нагуглил однозначного ответа, но кажется нельзя

предлагается создавать отдельные модули с инстансами, или делать ньютайп

на практике это думаю не так сильно беспокоит людей. Но думаю это является одним из препятсвий в понимании этих функторов, многие думают что нечто по [божественному умыслу с момента своего зачатия] является функтором, в то время как правильней говорить, что нечто имеет одно из множества функторных представлений (подставь вместо функтора свой любимый тайпкласс)

? animufag ?
21.02.2017
15:05:00
инстанс + законы

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

Google
Kit
21.02.2017
15:06:08
функторы это специальное понятие из теории категорий

эмм, я проверяю (те которые могу)

? animufag ?
21.02.2017
15:06:29
я нет

Ilya
21.02.2017
15:06:48
я нет
Ghc тебя покарает

? animufag ?
21.02.2017
15:06:50
редко пишу инстансы для всяких фундаментальных вещей

Ilya
21.02.2017
15:07:43
Он может преобразовывать выражения, используя эти законы

? animufag ?
21.02.2017
15:19:02
у меня первое зерно сомнений однажды закралось с Either

особенно глупым тогда казалось, что правое и левое совершенно разные приоритеты имеют. (в то время как в других языках их стали называть ok и err)

Ilya
21.02.2017
15:20:04
у меня первое зерно сомнений однажды закралось с Either
А что мешает поменять местами смысл Left и Right

Alexander
21.02.2017
16:24:17
Какая простите константа Void?

Ilya
21.02.2017
16:24:17
А как в этом убедиться

Misha
21.02.2017
16:24:24
они все эквивалентны, потому что приводят в зацикливанию

Ilya
21.02.2017
16:24:39
Alexander
21.02.2017
16:24:55
Какая константа void?

? animufag ?
21.02.2017
16:25:09
newtype Void = Void Void void = Void void

λ> :t void void :: Void

Google
Ilya
21.02.2017
16:25:43
Вот эта

void очевидно населяет тип Void. Но если она совпадает с undefined, который населяет любой тип, то ок

Осталось понять, так ли это

? animufag ?
21.02.2017
16:28:21
они все эквивалентны, потому что приводят в зацикливанию
смотря что назвать эквивалентностью. скорее можно сказать, что они все являются ботомами, но в остальном у них разные типы, разные конструкторы

хотя не. момент

Ilya
21.02.2017
16:29:07
Тип то один

Misha
21.02.2017
16:29:21
да можно сколько угодно таких типов накрутить

эффект один

? animufag ?
21.02.2017
16:35:41
Language: haskell Source: data Void = Void Void void = Void void instance Eq Void where _ == _ = True main = print $ void == undefined Result: True

Admin
ERROR: S client not available

? animufag ?
21.02.2017
16:35:55
всё

неопровержимое доказательство

Ilya
21.02.2017
16:36:13
Офигенный инстанс

? animufag ?
21.02.2017
16:36:23
взял отсюда https://hackage.haskell.org/package/void-0.7.1/docs/src/Data-Void.html#Void

наверное ты думал, что я сам только что выдумал

чтобы подтасовать

Ilya
21.02.2017
16:37:31
Ну ты докопался до ==

Я имел в виду не это

Да, == мы можем как угодно определить

? animufag ?
21.02.2017
16:38:00
приведи своё определение эквивалентности

Google
Alexander
21.02.2017
16:38:55
void расходится это bottom

Чего тут понимать то

Ilya
21.02.2017
16:39:19
Alexander
21.02.2017
16:39:22
Или в том что undefined это bottom есть вопросы?

По определению же

Alexander
21.02.2017
16:39:42
Почему?

? animufag ?
21.02.2017
16:39:56
вот например ещё один вариант, назовём его "синтаксическая эквивалентность" undefined и void по буквам не совпадает, так что они не эквивалентны

Alexander
21.02.2017
16:40:20
А let loop = loop in loop?

? animufag ?
21.02.2017
16:44:08
void очевидно населяет тип Void. Но если она совпадает с undefined, который населяет любой тип, то ок
кстати ещё интересно: ты про теорию или про компайл-тайм, рантайм?

Ilya
21.02.2017
16:46:02
Хорошо, допустим. Для закрепления: Если мы определим data Void = Void Void void = Void void То void НЕ будет bottom, верно? Потому что находится в СЗНФ? А для newtype Void = Void Void void невозможно привести к СЗНФ, поэтому это bottom

Так?

Сорри, с телефона пишу, опечатки

Kit
21.02.2017
16:48:58
Декомпозиция в Haskell определяет бесконечные циклы

Ты можешь с ними работать не можешь вычислить

Скажите мне в чем проблема? Я не понимаю

Kit
21.02.2017
16:52:18
Выражение void = Void void верное

Ilya
21.02.2017
16:52:35
Выражение void = Void void верное
Погоди, пожалуйста

Ща я разберусь, а потом тебе объясню

Kit
21.02.2017
16:52:55
Это как определение бесконечности для целых чисел

? animufag ?
21.02.2017
16:53:07
Скажите мне в чем проблема? Я не понимаю
человек не уточняет вопрос, но думает что уже сейчас есть точный ответ

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