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

18 ответов

8 просмотров

какой смысл в 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, ты меня спроси серьёзно, а то тут токсичный угар...

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

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

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
17
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Карта сайта