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