169 похожих чатов

Есть утверждение: нехвостовую рекурсию без стека не сделать в любом

случае

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

можно написать и свой компиль, который будет это делать сам без анноатации

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

ни хаскель ни окамл особо не имеют прямого отношения к теме, это лишь примеры

собственно вопрос, что ты хочешь сказать? Что хаскель лучше чем окамл тем что там не нужно делать аннотацию для этой оптимизации? Окей, может быть, может быть нет, никто про это не спорил вроде бы. Если окамл сможет сам выводить, где нужна подобная трансформация, с аннотацией на отключение, то может быть будет лучше

Если ты хотел сказать что-то другое, то я не понял что.

Это я отбросил твои предыдущие сообщения, которые мне тоже не понятны, оставив только последнее

2 ответов

26 просмотров

А с чего ты решил, что я с кем-то спорю про рекурсию в окамле? Мой комментарий про язык. Я прокомментировал сообщение про окамл в чате хаскелля, в духе «ну и где тут хваленная прагматичность и практичность окамла по сравнению с хаскеллем, о которой с другой стороны так любят рассказывать». Никакого спора, ехидный наброс чистой воды. И да, это все еще ручное аннотирование важного аспекта программы, которое не равносильно по важности с inline в хаскелле. Сам он это выводить не сможет, как они сами указывают на контр-примерах, где программист должен знать по семантике структуры в какой функции и какой ее ветке указывать эту аннотацию.

Max Avanov
А с чего ты решил, что я с кем-то спорю про рекурс...

с прагматичностью в окамле вообще неважно дела обстоят

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта