@haskellru

Страница 1352 из 1551
Yuriy
19.07.2018
12:43:50
@icrbow ты об этом?

IC
19.07.2018
12:44:15
нет

наверно

Yuriy
19.07.2018
12:45:15
ещё говорят, что множество замкнуто относительно операции, но здесь операция важнее, чем множество

Google
Ilya
19.07.2018
12:45:51
Замкнутость и открытость это топологические термины

Yuriy
19.07.2018
12:47:25
https://ru.wikipedia.org/wiki/Замкнутое_множество

да, есть и такая замкнутость

Евгений
19.07.2018
12:51:40
как называется свойство множества быть открытым или закрытым?
Никак, это дуальные понятия, их вместе не используют. Оперируют либо за отдельно замкнутыми множествами, либо отдельно открытыми

Какую ты проблему решаешь изначально? Чувствую XY

IC
19.07.2018
12:52:51
хочу нормальный маркер для вот этого всего вместо Bool

Vladimir
19.07.2018
12:53:40
Множеству не обязательно вообще быть открытым или замкнутым.

И не обязательно быть исключительно либо открытым, либо замкнутым. Можно быть и тем, и другим.

Евгений
19.07.2018
12:54:49
хочу нормальный маркер для вот этого всего вместо Bool
Нет, явно изначально ты решаешь не эту проблему. Задачу-то какую решаешь, откуда ты замкнутые и открытые множества взял

Потому что, опять же, никто не оперирует этими понятиями одновременно

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

Google
Vladimir
19.07.2018
13:19:05
Пропустил код.

Ilya
19.07.2018
13:19:37
Только нафига это нужно, и правда непонятно

IC
19.07.2018
13:20:06
(Bool, Bool) твой маркер
Так я от булов и хочу уйти

Ilya
19.07.2018
13:21:03
Понял, тебе надо закрытость и открытость в одно слово смэшить

Чтобы тип назвать

Так?

Чтобы тип назвать
Тип о 4 конструкторах

kana
19.07.2018
13:22:13
не помню, чтобы эту классификацию как-то называли

"по открытости"

или "по замкнутости"

Ilya
19.07.2018
13:23:07
Да заведи просто два типа изоморфных Bool, и запихни их в тип, изоморфный паре

kana
19.07.2018
13:23:26
а как его назвать?)

тип, изоморфный паре

Ilya
19.07.2018
13:23:46
Вот для этого и пара

Чтоб не называть, но он так не хочет

Ilya
19.07.2018
13:25:16
f :: (Openess, Closeness) -> IO ()

Норм читается

IC
19.07.2018
13:26:30
Google
kana
19.07.2018
13:26:30
на хаскеле?

^

Ilya
19.07.2018
13:27:37
А по-русски можно?

IC
19.07.2018
13:28:30
А по-русски можно?
пофиг. лишь бы на хаскеле можно было

A64m
19.07.2018
13:32:33
ну тип для конструкторов Foo и Bar всегда можно назвать FooBar, и сэкономить время на придумывание чего-то получше

IC
19.07.2018
13:35:38
data COBN

всё, обошёлся изобретением темплейтов ?

Index
19.07.2018
19:59:42
не пруфассистант. все эти потуги в сторону "тотальности" в хаскеле - это как ФП на C++
с одной стороны, уровень безнадежности примерно тот же. с другой стороны, лямбды в C++ всё же завезли

в Haskell totality checker нужен для оптимизации, чтобы Refl в рантайме не конструировать

доказывать так ничего не возьмешься, разумеется

ну, в смысле, возьмешься, но всё будет с оговоркой, что никто нигде bottom не сотворил, то есть это не доказательство, а скорее sanity check кода

Aleksey
19.07.2018
20:03:55
А вот когда доделают левити полиморфизм

A64m
19.07.2018
20:04:45
смотря что подразумевается под доделанным

Aleksey
19.07.2018
20:05:54
Unlifted types разве есть сейчас в GHC? Могу я попросить на вход функции анлифтнутый тип?

ну я имел в виду не Levity polymorphic data types а пменно анлифтнутые типы

в какой нибудь форме

A64m
19.07.2018
20:08:15
массивы разве что

Aleksey
19.07.2018
20:08:40
ну т.е. нет

Alexander
19.07.2018
20:09:28
unboxed sum есть

Google
A64m
19.07.2018
20:09:30
объявлять такие типы как обычные хаскельные алгтд нельзя, так такое и не планируется сейчас

Alexander
19.07.2018
20:09:46
unlifted типы тоже

A64m
19.07.2018
20:10:05
так анбокснутые суммы они не только анлифтнутые

Alexander
19.07.2018
20:10:24
ну пихнуть туда Array#

Aleksey
19.07.2018
20:10:24
а еще и анбокснутые ..

A64m
19.07.2018
20:10:26
анлифтнутые это когда не надо за ленивость платить

Alexander
19.07.2018
20:10:41
он вроде unlifted boxed

но это тот ещё ад

Admin
ERROR: S client not available

Alexander
19.07.2018
20:11:19
оно вообще интересно заработает?

A64m
19.07.2018
20:11:54
можно будет, наверное, в перспективе костылить их на ньютайпах, которые планируется сделать работающими для типов разных левити, но это еще не имплементировано

т.е. можно будет делать такой аналог растовых енумов, анбокс, без рекурсии и т.д. но делать их кучей бойлерплейта, т.е. анб. суммами, ньютайпами и паттерн синонимами

ну можно еще бекпаком такое делать уже сейчас, но с еще большим бойлерплейтом потому, что бекпак паттерн-синонимы не поддерживает

но бекпаком вообще можно левити полиморфный код писать, с 8.4

еще планируются типизированные массивы для анлифтед значений, а не как сейчас

вот собственно и все

планов не очень много, так что и доделывать особо нечего

Index
19.07.2018
20:15:16
т.е. можно будет делать такой аналог растовых енумов, анбокс, без рекурсии и т.д. но делать их кучей бойлерплейта, т.е. анб. суммами, ньютайпами и паттерн синонимами
если бы обычные типы незаметно дешугарились в ньютайпы и паттерн-синонимы, можно было закоэрсить data T = A | B и data X = M | N не знаю, хорошо это или плохо

A64m
19.07.2018
20:15:16
но, веротно, новые планы могут появится, движение в этом направлении есть

Index
19.07.2018
20:15:46
но вот коэрсить списки и индексированные длиной списки было бы точно прикольно

Google
Index
19.07.2018
20:16:13
при условии, что там equality proof каким-то образом анбокснулся и на рантайм-представлении не отразился

A64m
19.07.2018
20:16:40
вроде я видел пример где дерайвинг виа делается для эквивалентных с точки зрения структуры типов (на дженериках)

это же фактически коерс

Index
19.07.2018
20:17:07
так соль коерса в том, что он id

а на генериках там по воле оптимизатора

A64m
19.07.2018
20:17:44
не, речь не про преобразование на дженериках, это сто лет возможно

а для конструирования дженериками свидетельства структурной эквивалентности, которое позволяет переносить инстанс с одного на другой, что уже id

Index
19.07.2018
20:18:50
да ладно

не представляю себе как это работает

в пейпере по DerivingVia это есть?

A64m
19.07.2018
20:19:08
я тоже Ж((

Index
19.07.2018
20:19:09
если да, придется читать

A64m
19.07.2018
20:19:30
вроде в примерах в каких-то гистах автора пропозала

попробую найти

если да, придется читать
да, я похоже неправильно вспомнил вот 4.3 Deriving via isomorphisms там все же от оптимизатора зависит

Index
19.07.2018
20:37:01
ну это я как раз могу понять

A64m
19.07.2018
20:38:03
но технически можно же ансейф коерсом кастить если проверить дженериками структурную эквивалентность, анформация об анпаке там же вроде есть

Index
19.07.2018
20:41:32
да unsafeCoerce-ом много что можно делать, но это не интересно, хочется representational equality

я вот думал было бы интересно ее постулировать в таком стиле: deriving instance Coercible A B и тогда GHC пусть проверял бы структурную эквивалентность сам

A64m
19.07.2018
20:42:35
так тут не ансейфкоэрс часть интересна, а возможность проверить эквивалентность дженериками

Index
19.07.2018
20:43:50
а оно обманчиво

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