@haskellru

Страница 1412 из 1551
Denis
17.08.2018
09:06:00
кстати в книге beginning haskell очень информативно про thunks в схемах и все такое

Алексей
17.08.2018
09:06:45
Хм, интересно, а если функциональный язык без ленивости (и без thunk), то там как-то можно будет сделать циклические ссылки?

A64m
17.08.2018
09:07:45
> функциональный язык без ленивости

Google
Denis
17.08.2018
09:09:22
@A64m_qb0 видел кстати их попытки?) https://github.com/natefaubion/purescript-call-by-name

A64m
17.08.2018
09:10:23
видел только ссылку в твиттере, в код не заглядывал еще

Евгений
17.08.2018
09:12:30
Кстати зацикливание данных ещё не означает, что нельзя без GC работать. Для такой невозможности нужна именно тьюринг-полнота зацикливания, то есть возможность построения термов, не имеющих даже слабой нормальной формы. То есть убрать GC из какой-нибудь агды в теории можно

Ilya
17.08.2018
09:13:45
Abbath
17.08.2018
09:14:27
В ATS есть GC?

Евгений
17.08.2018
09:14:28
Denis
17.08.2018
09:15:30
опять же lazy
ну а что такое lazy? Unit -> a

A64m
17.08.2018
09:15:46
ну это замена для части юзкейсов мутабельности

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

Ilya
17.08.2018
09:17:08
Вопрос понятий
надо переписать эти числа фибоначчи рекурсивно, тогда и будет видна разница

Google
Ilya
17.08.2018
09:17:17
(с сохранением эффективности)

Евгений
17.08.2018
09:17:26
ну вот в той же пурсе ничего толком нет, но имея lazy list там можно сделать что-то подобное
А без разницы можно ли завязывать узлы для этой задачи. Важно именно существование данных без нормальной формы. Написал data A = Lambda A->A | Unit и всё

Алексей
17.08.2018
09:17:45
вот кстати готова идея для нового эзотерического языка программирования

Denis
17.08.2018
09:17:57
лямбда это уже отложенные данные

Евгений
17.08.2018
09:18:39
Ну без возможности функции писать в ADT это уже не рекурсивные типы данных

A64m
17.08.2018
09:18:57
а рекурсия не зацикливает данные
в ферст ордер языке нет, в языке с замыканиями уже будут какие-то данные в хипе соотвествовать функциями и зациклить их можно

Denis
17.08.2018
09:19:25
вот кстати готова идея для нового эзотерического языка программирования
нового? SKI ничего кроме базиса нет базис это набор неких лямбд SKI имеет всего одну метаоперацию SKI Тьюринг полный S и K изоморфны неким правилам логики высказываний

Евгений
17.08.2018
09:20:39
в ферст ордер языке нет, в языке с замыканиями уже будут какие-то данные в хипе соотвествовать функциями и зациклить их можно
О я понял чего хочу, я хочу тьюринг-полный ЯП, в котором данные это достаточно крутой набор тотальных функции

Denis
17.08.2018
09:21:07
можно вообще взять X базис и все будет строиться вокруг всего одной HOF

Евгений
17.08.2018
09:22:04
Denis
17.08.2018
09:22:24
Категорно-Комбинаторная машина

Abbath
17.08.2018
09:22:35
Мне кажется что ванесса из твитора - трап

Denis
17.08.2018
09:23:00
Мне кажется что ванесса из твитора - трап
конечно, там все ссылки на лгбт и геев с трансами постоянно

Denis
17.08.2018
09:23:28
Там это где?
в ее (его?) твиттере

Abbath
17.08.2018
09:23:43
Ясно понятно

Евгений
17.08.2018
09:24:59
Denis
17.08.2018
09:25:08
ох ман

Евгений
17.08.2018
09:25:28
Звучит как неологизм

Google
Denis
17.08.2018
09:26:19
Звучит как неологизм
вроде это https://wiki2.org/ru/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B0%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0

Dmitry
17.08.2018
09:31:21
https://twitter.com/boyter/status/1029943280350314496
А код там где-то рядом есть?

A64m
17.08.2018
09:31:47
не знаю

Dmitry
17.08.2018
09:32:49
Ну ладно

Евгений
17.08.2018
09:32:56
вроде это https://wiki2.org/ru/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B0%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%B0
Ну учитывая то, что у любого нормального тотального языка нет рабочей категориальной модели, то такое. А если идти дальше и сказать, что всё-таки хочется, что бы в языке был сетценоровский pi-3 reflection, то дважды такое

Dmitry
17.08.2018
09:34:11
Можно ж просто файл в память отмапить в массив, или что там в Go, да посчитать \r. GC тогда вообще не затронется. То же самое в Haskell

A64m
17.08.2018
09:35:24
речь то про программу, которая LOC считает, у нее посложнее логика

но, конечно, и ее можно без особой нагрузки на гц написать

Dmitry
17.08.2018
09:35:54
С учётом комментариев?

A64m
17.08.2018
09:36:41
https://github.com/boyter/scc

Dmitry
17.08.2018
09:36:42
В смысле, loc - только значимые линии кода?

Да уж. Каждый раз, когда смотрю на Go, кажется, что это заговор производителей клавиатур. При таком объёме... ммм... кода клавиатуры надо очень часто менять

Евгений
17.08.2018
09:39:09
Я думаю всё проще — просто авторы го пишут в акме

Denis
17.08.2018
09:41:03
Алексей
17.08.2018
09:50:40
Danil
17.08.2018
09:51:10
Ну да

Куда легче все трай кэтч блок завернуть

И забить на ошибки

Google
Евгений
17.08.2018
09:51:24
Вот реальный кусок моего кода, который я сейчас пишу conn, err := sonarqube.NewConnectionByToken(sonarURL, sonarToken) if err != nil { return err } searchProject := project if branch != "" { searchProject = fmt.Sprintf("%s:%s", project, branch) } projects, err := conn.ProjectSearch(sonarqube.ProjectSearchRequest{Projects: []string{ searchProject }}) if err != nil { return err } else if len(projects) > 0 { fmt.Printf("project '%s' with branch '%s' already registered\n", project, branch) return nil } _, err = conn.ProjectCreate(sonarqube.ProjectCreateRequest{Name: project, Project: project, Visibility: visibility, Branch: branch}) if err != nil { return err } Сколько здесь значащих строк?

Алексей
17.08.2018
09:51:50
Куда легче все трай кэтч блок завернуть
неа, try catch не надо писать повсюду

Denis
17.08.2018
09:52:27
Даже в rust лучше сделали чем в го :)

Алексей
17.08.2018
09:52:32
то есть в блоке try может быть суммарно просто дофига кода, который об ошибках вообще не парится

Алексей
17.08.2018
09:52:42
Даже в rust лучше сделали чем в го :)
везде лучше сделано, чем в го

Danil
17.08.2018
09:52:51
Если работаете с сетевым по

То нужно чекать каждый опасный участок кода

Евгений
17.08.2018
09:53:09
Куда легче все трай кэтч блок завернуть
if err != nil { return err } ^^^^ Не похоже на РЕАЛЬНОЕ БЕСПОКОЙСТВО ОБ ОШИБКАХ

Danil
17.08.2018
09:53:16
А не завернуть все в один трай кэтч и положить большой и толстый

Admin
ERROR: S client not available

Denis
17.08.2018
09:53:36
А это уже от задачи зависит

Алексей
17.08.2018
09:53:47
если в Go так не нужны исключения, то зачем там panic/recover?

шах и мат, голангисты

Евгений
17.08.2018
09:53:56
А не завернуть все в один трай кэтч и положить большой и толстый
Странная позиция для человека, который защищает язык с GC

Denis
17.08.2018
09:54:19
Иногда надо чекать отдельные операции, а иногда проще перезапустить целиком не разбираясь

Danil
17.08.2018
09:54:41
К тому же эту конструкцию можно сократить до одной строчки

Написав функцию

Алексей
17.08.2018
09:55:15
А не завернуть все в один трай кэтч и положить большой и толстый
а можно и не заворачивать, а нормально хэндлить ошибки но руками каждую ошибку пробрасывать наверх по стеку - это точно не является нормальным хэндлингом ошибки

Google
Алексей
17.08.2018
09:55:36
Евгений
17.08.2018
09:56:09
К тому же эту конструкцию можно сократить до одной строчки
А можно хуйнуть всё в ExceptionT монаду и не парится

Danil
17.08.2018
09:57:11
func errobr(err){ if err!=nil{ ... return } }

Евгений
17.08.2018
09:57:40
И чо?

Это не поможет

Перепиши мой код выше

Алексей
17.08.2018
09:58:05
func errobr(err){ if err!=nil{ ... return } }
return - это выход из errorbr

более того, насколько я знаю, даже создатели стандартной либы go не смогли без исключений прожить и таки заюзали panic/recover в json библиотеке, даже в доке хвалились этим фактом

Denis
17.08.2018
10:00:49
Ну тут либо макросы нужны, либо монадки, но их без сахара читать тяжко :)

Алексей
17.08.2018
10:01:06
либо нормальные исключения

тоже вариант, вполне нормальный для подобных языков

Евгений
17.08.2018
10:01:27
Исключения это убогая разновидность call/cc

Denis
17.08.2018
10:02:23
хм, а чего тут про го так оживленно говорят? я думал о нем вообще не надо говорить, а тут в хаскел чатике наспамили про этот го

Алексей
17.08.2018
10:02:58
Исключения это убогая разновидность call/cc
нормальная разновидность, не все языки ФП, не во всех языках монады будут нормально выглядить

Евгений
17.08.2018
10:03:17
call/cc это не монада

Denis
17.08.2018
10:03:26
Ну кто то расстроился что его лапшу из return err назвали бесполезным кодом

Евгений
17.08.2018
10:04:39
Ну кто то расстроился что его лапшу из return err назвали бесполезным кодом
На самом деле кто-то расстроился, что я назвал свою лапшу из return err бесполезным кодом

Dmitry
17.08.2018
10:04:49
Алексей
17.08.2018
10:04:58
call/cc это не монада
ну это же CPS вроде, который в том же хаскеле удобно будет завернуть в монаду, чтобы руками не писать

Алексей
17.08.2018
10:05:46
ну так то да

но я ещё больше про всякие maybe/either говорил (которые кстати тоже не обязаны быть монадами)

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