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

18 ответов

25 просмотров

какой смысл в eval?

Смысл функциональных языков - это создание алгоритмов путём комбинирования функций как элементов языка.

serfcity--fsanitize=undefined,address Автор вопроса
Mikail Bagishov
какой смысл в eval?

Повышать абстракции. В ООП парадигме у нас есть объект, его методы и все. Это потолок. В ФП у нас нет ограничений. Мы можем повышать абстракции до бесконечности. Например, существует код на лиспе, который может исполнять код на Си. Т.е. этот код добавит ключевые слова в язык, опишет поведения стека и все-все-все так, что после этого куска кода можно будет писать код на самом обычном Си.

serfcity--fsanitize=undefined,address Автор вопроса
Boris Usievich
Только оно будет тормозить

Да, будет. Это такая плата за возможности. Такая же плата, как и за любое повышение абстракции: Си исполняется не так эффективно, чем ассемблерный код, написанный живым человеком, Си++ не так эффективно (из-за ООП), как чистый Си и контроль за каждым байтом. Так же и ФП дает прирост в возможностях за плату в виде невозможности написать компилятор

serfcity -fsanitize=undefined,address
Повышать абстракции. В ООП парадигме у нас есть об...

1. Чтобы такое сделать, eval не требуется. Тут нужна какая-то синтаксическая гибкость (если хочешь прямо встраивать код не в виде строковых литералов), ну а дальше вместо транслятора в наш язык с последующим eval-ом напрямую интерпретируем. 2. Как я уже говорил, некоторая форма eval в С++ и С есть. По твоему определению этого достаточно, чтобы они стали ФП?

serfcity -fsanitize=undefined,address
Да, будет. Это такая плата за возможности. Такая ж...

> Си исполняется не так эффективно, чем ассемблерный код, написанный живым человеком Ни Си, ни ассембли не исполняются

serfcity -fsanitize=undefined,address
Да, будет. Это такая плата за возможности. Такая ж...

> Си++ не так эффективно (из-за ООП) citation needed, шаблоны например несут скорее отрицательную стоимость (потому что компилятор старательно соптимизирует каждый инстанс). > невозможности написать компилятор То есть хаскель это не ФП?

serfcity -fsanitize=undefined,address
Да, будет. Это такая плата за возможности. Такая ж...

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

serfcity--fsanitize=undefined,address Автор вопроса

Написать компилятор ФП языка, который не будет включать в себя компилятор/интерпретатор этого ФП языка невозможно.

serfcity -fsanitize=undefined,address
Написать компилятор ФП языка, который не будет вкл...

ну окей, программы на языке Х (например программы на C++, которым нужен eval) будут тянуть с собой копию компилятора, в чем проблема?

serfcity -fsanitize=undefined,address
Написать компилятор ФП языка, который не будет вкл...

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

serfcity--fsanitize=undefined,address Автор вопроса
Mikail Bagishov
ну окей, программы на языке Х (например программы...

Не в чем. Просто оно будет работать медленно, потому что ты во время исполнения будешь вынужден компилировать / интерпретировать. Это плата за ФП.

serfcity -fsanitize=undefined,address
Написать компилятор ФП языка, который не будет вкл...

какое отношение все это имеет к C++? Нравится ФП - идите в чатик по ФП

Boris Usievich
какое отношение все это имеет к C++? Нравится ФП -...

тут какое-то очень спефическое определение ФП. ФП признается язык, в котором есть eval.

Ilya Zviagin
Смысл функциональных языков - это создание алгорит...

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

The Pressbraker
Верно. Функциональный стиль программирования это ...

Если тебе надо что касаемо FP, ты меня спроси серьёзно, а то тут токсичный угар...

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

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

а через 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
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта