@haskellru

Страница 1237 из 1551
Евгений
01.06.2018
15:10:08
Но вообще в сабже тайп-инференс невыводим, поэтому работать нормально оно не может

A64m
01.06.2018
15:10:44
да там не из-за инференса, он-то как раз лучше всего остального работает

там все время были проблемы чисто технические, вроде того что костыль не может от гхц получить констрейнты и выдает типы вроде a -> a -> a для (+)

Евгений
01.06.2018
15:12:39
А чего просто не форкнуть ghc?

Google
Евгений
01.06.2018
15:12:46
И не влезть в кишки?

A64m
01.06.2018
15:12:47
но это всего лет за 15 как-то победили

да это вообще адище будет

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

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

но последние лет пять это чуть ли не один человек все делает

ну плюс минус еще студент по гсоку

Denis
01.06.2018
15:15:17
а меня не обламывает =>
меня тоже не обламывает, но немного сливается визуально с ->

Aleksey
01.06.2018
15:17:48
Но у нас больше такого :( foo :: ( MonadFoo m, MonadBar m , MonadBaz m, MonadQux m ) => m a -> m () foo = ...

Aleksey
01.06.2018
15:19:06
Уродское единообразие (мне тодже не нравится, но такое уж соглашение)

A64m
01.06.2018
15:19:19
удивительно, конечно, насколько сносный вид хаскельного кода можно испортить соглашением по форматированию.

Google
Aleksey
01.06.2018
15:20:08
А мне не удивительно. Есть очень упоротые стили

A64m
01.06.2018
15:20:10
от 2 до 8/10 единиц боли, где 10 у C++

Aleksey
01.06.2018
15:20:53
bla = '[ Foo , Bar , Baz ] от ащо такое фу

Denis
01.06.2018
15:20:56
без соглашения - регулярные асимметричные микровзрывы пятой точки у членов одной команды

A64m
01.06.2018
15:21:21
и с соглашением тоже

Aleksey
01.06.2018
15:22:17
С соглашением вырабатывается/тренируется терпимость.

Сначала ругаешься (на стайл-чекер), потом привыкаешь (деформируешься).

A64m
01.06.2018
15:22:44
терпимость ни к чему не вырабатывается, только ненависть и безумие накапливается

Denis
01.06.2018
15:23:00
с соглашением хотя бы понятно почему микровзрывы

без него просто ощущение что тебя все ненавидят

Aleksey
01.06.2018
15:23:09
Профессиональное пригорание

A64m
01.06.2018
15:23:41
а с соглашением ты как-бы вступаешь в заговор против себя и тоже себя ненавидишь вместе со всеми

Yuuri
01.06.2018
15:24:47
Не все столь ригидны

Denis
01.06.2018
15:27:13
без соглашений анархизм полный

сегодня код пишете как на душу ляжет, а завтра все подъезды обоссаны

kana
01.06.2018
15:41:16
Aleksey
01.06.2018
15:41:55
как больно
а что делать то?

kana
01.06.2018
15:42:14
bla = '[ Foo , Bar , Baz ]

Google
kana
01.06.2018
15:42:29
висячая пунктуация почи

Aleksey
01.06.2018
15:42:31
некратный отступ - фу

kana
01.06.2018
15:42:40
ну по висячей скорее ' должен быть слева

типа bla = '[ Foo , Bar ]

Denis
01.06.2018
15:43:01
некратный беее

kana
01.06.2018
15:43:51
все лучше для глаз, чем x = '[ a , a , a ]

первоцель форматирования - читаемость

Aleksey
01.06.2018
15:45:13
первоцель форматирования - не требовать большого времени на форматирование

kana
01.06.2018
15:45:29
не слышал про такую первоцель никогда

это же нелогично

Aleksey
01.06.2018
15:45:48
А "читаемость", это "предсказуемость" во многом и "единообразие" ещё

kana
01.06.2018
15:46:05
люди тратили много времени на ФОРМАТИРОВАНИЕ, и поэтому ПРИДУМАЛИ ФОРМАТИРОВАНИЕ, чтобы не тратить много времени на ФОРМАТИРОВАНИЕ?

Denis
01.06.2018
15:46:28
цели две: 1) не думать как читать “креативно” отформатированное 2) не думать как форматировать

kana
01.06.2018
15:46:31
самоопределение

Aleksey
01.06.2018
15:47:11
Форматирование "чик-чик и в среднем неплохо" - ок. Форматирование "всего пятнадцать минут, зато как красиво" - сомнительно

Denis
01.06.2018
15:47:33
у меня от вашего креативного форматирования РЕБЕЙЗЫ

kana
01.06.2018
15:48:19


у вас что, реально такое в коде?

Aleksey
01.06.2018
15:49:09
да. Но твой вариант - ещё хуже

Google
Denis
01.06.2018
15:49:24
да, и у нас машинопроверяемый стиль, чтобы опрессировать вольных мыслителей

kana
01.06.2018
15:50:03
в 2к15+ у всех машинопроверяемый стиль

Aleksey
01.06.2018
15:50:11
Красиво можно делать в хоббипроектах. В коллективных нужно как можно меньше простора для самовыражения оставлять. Хотя бы в плане форматирования

в 2к15+ у всех машинопроверяемый стиль
То-то нам пришлось писать свой инструмент для этого.

kana
01.06.2018
15:50:50
"оставить мало меньше простора" не значит выбрать самый ужасный вариант

Aleksey
01.06.2018
15:51:01
Это не самый ужасный вариант

kana
01.06.2018
15:51:19
data X = A | B

Denis
01.06.2018
15:51:25
"оставить мало меньше простора" не значит выбрать самый ужасный вариант
ты опоздал на обсуждение ужасности, оно было долгое, а потом всем надоело

kana
01.06.2018
15:51:49
ладно ,это нормальный стиль .

Aleksey
01.06.2018
15:52:20
data X = A | B
тут то зачем? здесь всё выравнивается нормально :)

К слову, type level lists в коде у нас сильно меньше, чем всего остального. Зато единообразие присутствует везде.

kana
01.06.2018
15:53:27
даже дата сверху выглядит приятнее, чем '[

Denis
01.06.2018
15:54:18
вот для этого стиль и нужен, потому что от обсуждения кому что приятнее - профессиональное пригорание

Aleksey
01.06.2018
15:54:50
Я пригорал, помнится

А теперь у меня в 99% случаев стайлчекер сразу доволен :)

kana
01.06.2018
15:55:41
единый стиль нужен, но это же нужно еще выбрать, какой стиль нужен в качестве единого

Denis
01.06.2018
15:56:43
это долго все выбирали, в итоге какими-то моментами поступились(вроде тех же тайп-левел листов) для простоты правил

миллион корнеркейсов все равно никто держать в голове не может

вообще это реально неприятная роль - гайдом по стилю заниматься

Все кругом недовольны, кругом корнеркейсы и потом все выглядит по меньшей мере так себе. Зато в команде боли субъективно меньше(тут зависит от того у какого процента горит от разметки, это случается не у всех).

Google
Denis
01.06.2018
16:01:06
взаимные компромиссы, взаимоуважение - лучше так, чем в расстановке букв постоянно красоту искать

A64m
01.06.2018
16:23:42
как типы связаны с инструментарием?
нормальный инструментарий просто позволяет смотреть типы где надо, куда-то их писать для этого не нужно

Oleg
01.06.2018
16:27:59
we must overcome our type inference training and learn to see types as pushing requirements inwards, as well as pulling guarantees out

© conor mcbride

A64m
01.06.2018
16:31:04
ну вот когда вся макбрайдовщина будет нормально имплементирована и работать для чего-то кроме индексированного длиной списка - тогда и поговорим

а пока превозмогать привычку к выводу типов рановато

Oleg
01.06.2018
16:32:25
Да я просто не сдержался. Два месяца терпел, чтобы вбросить, когда скаловый инференс поносить будут

A64m
01.06.2018
16:33:16
в скале нету вывода же

Oleg
01.06.2018
16:33:28
A64m
01.06.2018
16:33:49
грустно

Yuuri
01.06.2018
16:36:53
> Scala has a built-in type inference mechanism which allows the programmer to omit certain type annotations.

A64m
01.06.2018
16:41:59
реконструкция есть, а вывода нет

Oleg
01.06.2018
16:42:07
* that barely works even in one direction

реконструкция есть, а вывода нет
Опять эти ваши термины из каких-то паперов 90-х

Yuuri
01.06.2018
16:46:58
реконструкция есть, а вывода нет
Ничего не знаю, в официальном мануле по языку сказано "инференс" - значит, инференс ?

Евгений
01.06.2018
17:04:45
A64m
01.06.2018
17:06:55
нет

Oleg
01.06.2018
17:09:01
летс терминоложи баттл бегинс

Евгений
01.06.2018
17:09:31
нет
В чем разница тогда ?

A64m
01.06.2018
17:10:10
вывод - это дамас-милнер и модификации, а реконструкция - все остальное

Yuuri
01.06.2018
17:12:44
"потому что я так сказал"

A64m
01.06.2018
17:13:48
потому что между этими двумя случаями есть существенная, практически значимая разница

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