Anonymous
что значит "недо"?
A64m
Vasiliy то, что надо как-то управлять памятью, которая в этой рекурсии выделяется
Anonymous
они сделаны так, как надо сделать, чтобы не иметь использование памяти как у хаскеля
A64m
потому и недо
Vasiliy
для управления стеком есть операции push и pop
A64m
я же не утверждаю, что они просто какие-то неосиляторы
A64m
это трейдофф
Vasiliy
гц тут не нужен
Anonymous
ну вообще поэтому они и не используют такие термины
A64m
но никтобы и не делал языки типа хаскеля, если б можно было ничего не терять
A64m
речь про то, что в куче надо выделять
Anonymous
это трейдофф
имо довольно важный для большинства приложений
A64m
@anarchostatist я же не говорю, что это неважно и ненужно
Vasiliy
а выделение в куче и рекурсия - это ортогональные, как мне кажется, вещи
A64m
я про то что нельзя говорить, что такой язык это полноценный ФЯ, высокоуровневый
Влод
A64m
не совсем
Anonymous
Vasiliy
впрочем, я не видел начала беседы, так что не совсем в контексте
Влод
про рекурсию в енумах а потом как-то странно на обычную рекурсию перешли
A64m
там где это можно себе позволить - конечно лучше
Anonymous
я говорил что он имеет эргономики приближенные к языкам ФП, до уровня который позволяет сохранить скорость
Влод
но поинт про рекурсию в енумах довольно познавательный
Vasiliy
шо за рекурсия в енумах O_o
Anonymous
в расте енумы это sum types
Vasiliy
оригинальное название
Anonymous
наверное чтобы проще цппшникам было
Vasiliy
дык в цпп енумы - считай именованные константы
Vasiliy
с недавних пор засунутые в неймспейсы
Anonymous
ну вообще енумы используются для создания tagged unions там
Влод
ну так забей. есть чуть чуть сходства и нормально.
а потом на какой-нибудь главе в енумах поля появляются
A64m
так и в расте, наверное каждый конструктор енума тегируется константой
A64m
я так понимаю, что и тегирование указателя не сделать из за такой имплементации
A64m
но все рвно в таком стиле со списками никто на расте писать не будет, так что не важно
Anonymous
A64m
да нет, не про это
A64m
я про то
A64m
но, наверное все-таки возвращают
A64m
даже в хаскеле можно число для конструктора получить
A64m
но речь про то, чтоб по тегированному указателю определять на какой конструктор енума он указывает
Anonymous
число можно получить только скастив в число
Anonymous
A64m
ну для языка в котором типичная для ФЯ велью-семантика рантайм может тегировать указатель, там же абстрагировано то, что он по ссылке передается
Anonymous
тегировать чем?
A64m
тегом конструктора, если конструкторов у енума немного, как в гхц делается, например
A64m
но в языке без ГЦ это не нужно все равно
Anonymous
да
Anonymous
раст так не делает
Anonymous
а вообще я не вижу проблемы имплементировать такое
A64m
проблема тут в том, что рефы не часть имплементации АлгТД где-то за кадром, а наблюдаемая программистом сущность
A64m
но все эти хитрости из ФЯ в низкоуровневом языке не нужны, там до последнего страдают чтоб рефов было поменьше все равно
Anonymous
кана
Как я понял, суть в том, что управление памятью - не минус, но это делает код менее абстрактным. ФП код же настолько абстрактный, что в теории он может быть собран под такую теоретическую машину, у которой совсем другая модель памяти.
И вот по факту хочется писать такой код, который будет максимально абстрактным, а работу с памятью и оптимизации перенести на компилятор.
А вот я хочу описать рекурсивный адт, а в раст нужно еще какой бокс добавлять, чзх
Cheese
кто-то может рассуждать наоборот: а вот я хочу описать не жрущий память адт, а в Хаскелле ещё нужно какой-то UNBOX добавлять, чзх
Vasiliy
да, конечно, но под вечер пятницы воспалённый мозг начинает чудить :D
Anonymous
Можно ли сделать так, чтоб stack install вместе с библиотекой скачивал все зависимости?
Anonymous
Alexander
stack download
Alexander
Alexander
но для полиморфных полей все равно будет коробка
Alexander
чистый кабал имхо гораздо приятнее чем стек, когда на ходу надо либы патчить
Maxim
а посоветуйте, пожалуйста, что по хаскелю почитать после learn you a haskell for great good?
Anonymous
http://haskellbook.com/ / bartosz milewski / the idris tutorial
Maxim
идрис пока незачем, я с хаскелем-то не до конца разобрался
Anonymous
многие темы будут повторятся, но она намного глубже идет
Maxim
Anonymous
у него лекции и блог по теоркат
Anonymous
можно посмотреть его замечательные лекции на ютубе
Anonymous
🙂
Anonymous
книжка?
Maxim
книжка?
category theory for programmers
Anonymous
это не книга же
Maxim
а что это?
Maxim
вроде книжка
Maxim
а есть что-нибудь почитать о тулинге в хаскеле? Типа там систем сборки, тестирования и всего такого