@haskellru

Страница 445 из 1551
Quet
30.09.2017
18:02:30
трейтобжекты это базовые классы+виртуальные методы в с++ )

dynamic dispatch ровно как в плюсах

illiatshurotshka❄️
30.09.2017
18:02:50
в с++ нет трейтов, какие трейтобжекты

Евгений
30.09.2017
18:02:52
Немного, потому что оно привязано не к идее какой-то, а к костылям реализации

Google
illiatshurotshka❄️
30.09.2017
18:03:14
ооооо

расскажешь про костыли реализации?

Quet
30.09.2017
18:03:26
Евгений
30.09.2017
18:04:45
Quet
30.09.2017
18:05:46
Just try to formalize rust type system
какие-то общие слова

illiatshurotshka❄️
30.09.2017
18:05:47
в чем проблема?

Евгений
30.09.2017
18:05:50
Язык строился не из типовой системы и стратегии редукцим, а из потребности разделить сущности хранящиеся на стеке и в хипе

Ilya
30.09.2017
18:06:05
Just try to formalize rust type system
^ это цитата или просто английский для придания веса утверждению?

Дмитрий
30.09.2017
18:06:27
расскажешь про костыли реализации?
Ну ты сам недавно призначал что в расте в фьючерсах торчат наружу детали имплементации

Евгений
30.09.2017
18:06:27
Второе :)

illiatshurotshka❄️
30.09.2017
18:07:17
Ну ты сам недавно призначал что в расте в фьючерсах торчат наружу детали имплементации
да, а где костыли реализаций? это к другой фиче относится которую просто еще проверяют на стабильность

Google
Quet
30.09.2017
18:07:22
Ну ты сам недавно призначал что в расте в фьючерсах торчат наружу детали имплементации
ну так если они не магические и не в рантайме то детали реализации обязаны торчать но проблема ли это?

Дмитрий
30.09.2017
18:07:39
Тут нет оправдания

Quet
30.09.2017
18:07:57
Нет, там торчит то что не должно
фича ушла в стабильную ветку и там торчит то что не должно?

Дмитрий
30.09.2017
18:08:00
И над этим работают, насколько я знаю, то есть проблема признаётся

Vyacheslav
30.09.2017
18:08:04
Язык строился не из типовой системы и стратегии редукцим, а из потребности разделить сущности хранящиеся на стеке и в хипе
вообще-то если я не ошибаюсь у rust есть попытки формализации, и даже есть вроде язык, на основе которого они строят систему типов и он формализован

illiatshurotshka❄️
30.09.2017
18:08:17
Quet
30.09.2017
18:08:28
Прикинь
ну бывает ( но вон сам говоришь работают и признали проблему

Quet
30.09.2017
18:09:07
но кажется @elemir90 до фьючерсов еще не дошел )

illiatshurotshka❄️
30.09.2017
18:10:01
я очень хочу конкретики

Vyacheslav
30.09.2017
18:10:08
ftp://ftp.cs.washington.edu/tr/2015/03/UW-CSE-15-03-02.pdf

@elemir90

язык и правда создавался так сказать ad-hoc, но они поняли, что без формализации никуда и продолжают работать в этом направлении

с другой стороны, тот же FB клепает языки и забивает на их формализацию

тоже живет вполне себе успешно

Vyacheslav
30.09.2017
18:12:32
что значит не так?

Google
Дмитрий
30.09.2017
18:12:44
По крайней мере flow должен быть формализован

illiatshurotshka❄️
30.09.2017
18:12:47
zerobias очень любит flow

Vyacheslav
30.09.2017
18:12:52
флоу вообще не язык

о чем тут говорить

это тайпчекер

Дмитрий
30.09.2017
18:13:55


Евгений
30.09.2017
18:14:07
Самое простое -- регионы предполагают естественный порядок, при чём двойной порядок, завязанный на начале и конце. Лайфтайм -- ад хок костыли, пытающиеся решить ту жу проблему, они умеют совпадать и нет. Кому нужны такие регионы? А заимствование? Кто-нибудь нормально описал type theory, связанный с тем, что если мы мутабельно заимствуем, то у нас "линейность", а немутабельно -- её отсутствие.

Vyacheslav
30.09.2017
18:14:32
но вот например Hack, который конечно взять из oCaml не формализован, новый язык, который они презентовали в июне Reflex тоже не формализован, более того, я говорил с создателем и он считает, что в его кейсе — формализация это бессмыслица

Евгений
30.09.2017
18:15:10
Я и не говорю, что формализация языка всегда осмысленна

Евгений
30.09.2017
18:15:33
Просто сложно писать на языке с безумной системой типов, которая нигде не формализована

Vyacheslav
30.09.2017
18:16:41
Еще раз, Flow это не язык, это система типов + тайпчекер, док-во того, что он чекает какую-то систему типов, которая саунд — не интересно, тем более ничего нового там нет.

Евгений
30.09.2017
18:16:51
Можно адаптироваться к ней, но я из тех людей, которые с чёткими инструкциями быстрее справляюсь чем с адаптацией к ад-хоку

Евгений
30.09.2017
18:22:09
так в чем все же конкретная проблема?
В том что мне сложно учить раст

Quet
30.09.2017
18:22:43
а, ну потому что ты привык к хаскелю и писал на нем

Ilya
30.09.2017
18:22:44
Формализация всегда отстает от требований бизнеса/прикладной науки. Иногда на десятки лет. Это нормально.

Quet
30.09.2017
18:22:48
а писал бы на плюсах было бы легко

Google
Quet
30.09.2017
18:23:36
мне вот хаскель понимать намного сложнее чем раст и насколько где хорошо формализованы типы роли не играет

illiatshurotshka❄️
30.09.2017
18:24:26
я только после изучения rust смог нормально изучить haskell

Ilya
30.09.2017
18:24:48
так-то любая формализация идёт на пользу любой области. и понимать это легче, если мозги привыкшие. но это pipe dream

Quet
30.09.2017
18:27:01
формализация хорошо если пишешь компилятор языка

если просто пишешь на языке не скажу что она как-то сильно помогает

Евгений
30.09.2017
18:27:53
а писал бы на плюсах было бы легко
Ну вот мне это не нравится, оно слишком похоже на плюсы. Это плюс для популярности языка, но минус для того чтобы быть красивым техническим решением

Quet
30.09.2017
18:28:56
это адекватная замена плюсов

но может быть не оч адекватная замена хаскеля

Евгений
30.09.2017
18:30:23
Формализация всегда отстает от требований бизнеса/прикладной науки. Иногда на десятки лет. Это нормально.
Да дело же не в том. Формализация большинства идей, используемых в расте, уже лет 10-15 есть. Просто авторы языка с ними не знакомы и придумывали велосипед. От этого решения не очень элегантны

это адекватная замена плюсов
Да я не спорю, мне раст понравился

Я бы не писал на нём иначе, лол

Евгений
30.09.2017
18:44:00
какие примеры велосипедов?
* переизобретение регионов * переизобретение хиндли-милнера, ограниченного констрейтами * переизобретение линейных типов Например из-за последнего в rust'е нет оператора "лийнеризации" типа. Наоборот есть оператор "делинейризации", что на логическом уровне бессмысленно. Это случилось просто потому, что разработчики придумывали способ обезопасить "указатели"

kana
30.09.2017
18:53:24
вау, нашел stylish-haskell, красота

Ilya
30.09.2017
18:53:34
скиньте пожалуйста что-нибудь доступное про эти ваши линейные типы и регионы

обзорное

Google
Denis
30.09.2017
18:53:54
kana
30.09.2017
18:54:24
нафиг hindent, мне не нравится его форматирование, да и умеет давеко не все, что умеет stylish

Mikhail
30.09.2017
18:54:43
@kana_sama Эти тулзы не взаимозаменяемы и тебе нужны будут обе.

(наверное)

Denis
30.09.2017
18:55:08
ну а brittany?

Mikhail
30.09.2017
18:55:49
ну а brittany?
Я лично опыта не имею, но малонастраиваемость hindent'а огорчает конечно.

Quet
30.09.2017
18:56:37
форматтер кода желательно должен вообще не настраиваться

ну или минимально )

Mikhail
30.09.2017
18:57:06
Утверждение так себе.

Задача заставить весь haskell community писать в одном стиле, мягко говоря, сложновата.

Quet
30.09.2017
18:58:03
и этим форматтером желательно должны пользоваться все тогда самый профит )

kana
30.09.2017
18:58:09
hindent раздражает тем, как переводит строки для каждой переменной конструктора, какой-нибудь F a b c d будет на 5 строк растянут

illiatshurotshka❄️
30.09.2017
18:58:43
скиньте пожалуйста что-нибудь доступное про эти ваши линейные типы и регионы
в расте ты не можешь получить из одного значения два, т.е. если ты отдаешь значение функции то ты не можешь его использовать если обратно оно не возвращается struct A; fn consume (x: A) -> () {} let x = A; consume(x); // здесь нельзя использовать x

если же использовать вместо consume fn not_consume(x: A) -> A { x } то после вызова мы можем опять использовать x (но более простое решение, которое и используют, это создать референс типа &A и передать его)

Ilya
30.09.2017
19:10:49
реквест обзорных статей остаётся в силе

illiatshurotshka❄️
30.09.2017
19:11:31
линейные типы это типы которые используются только один раз. статей у меня нет, сорь

Ilya
30.09.2017
19:13:03
Ну на хабре я читал про раст несколько статей. Принцип борроу-чекера и лайфтаймы мне понятны. Но ни разу в тех статьях не видел слов "линейные типы" и "регионы"

за этим видимо какая-то теория стоит? вот её хочется увидеть

Ilya
30.09.2017
19:15:33
линейная логика
на русском гуглится какой-то трэш на английском нашлось вот это https://en.wikipedia.org/wiki/Linear_logic оно?

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