Size: a a a

2020 March 23

AE

Alexey Egorov in Lisp Forever
Хороший Лисичко
Мне кажется, что для того, чтобы быть функциональным язычком программирования, надо иметь в себе реализованной одну из систем типов лямбда куба _)
Это вообще другое.
источник

AE

Alexey Egorov in Lisp Forever
Это теория типов.
источник

ХЛ

Хороший Лисичко in Lisp Forever
Alexey Egorov
Это теория типов.
Да, и что?
источник

ХЛ

Хороший Лисичко in Lisp Forever
Все языки, которые я считаю функциональными, построены на одной из этих систем типов.
источник

AE

Alexey Egorov in Lisp Forever
Это ортогональная концепция.
источник

AE

Alexey Egorov in Lisp Forever
Ни Коммон Лисп, ни Эрланг не реализовывают ни одну из этих вершин.
источник

AE

Alexey Egorov in Lisp Forever
С++ кажется тоже.
источник

AE

Alexey Egorov in Lisp Forever
При этом это всё языки с очень хорошей поддержкой функционального программирования.
источник

LL

Lämppi Lütti in Lisp Forever
Alex Peresmeshnik
Но я могу дизморалить оппонентов аналогичным кодом на го или на питоне. Дизмораль в более быстром написании кода :)
Код на го может только мотивировать тех, кто на нём не пишет
источник

AE

Alexey Egorov in Lisp Forever
С другой стороны, даже безумный ATS вроде бы имеет хорошую поддержку обычных функциональных инструментов.
источник

VM

Vyacheslav Mikushev in Lisp Forever
Andrew Kravchuk
Вот да, присоединюсь к этому оратору. Правда, таким макаром C тоже функциональный, но это мелочи 😅
Нет. В C функции не являются объектами, тем более первого порядка. 😁
источник

YK

Yaroslav Khnygin in Lisp Forever
интересно, найдется ли герой, который вкорячит туда CL https://dreamcast.wiki/Using_Ruby_for_Sega_Dreamcast_development
источник

YK

Yaroslav Khnygin in Lisp Forever
портов реализаций CL на SH4 вроде не существует
источник
2020 March 24

AE

Alexey Egorov in Lisp Forever
Vyacheslav Mikushev
Нет. В C функции не являются объектами, тем более первого порядка. 😁
Ну, тем не менее сложить функцию в переменную, а потом вызвать её вполне можно.
источник

VM

Vyacheslav Mikushev in Lisp Forever
Не функцию, а указатель на функцию.
источник

VM

Vyacheslav Mikushev in Lisp Forever
Указатель на кусок кода, который можно выполнить. Это сильно отличается от объекта-функции.
источник

AE

Alexey Egorov in Lisp Forever
Чем же?
источник

AE

Alexey Egorov in Lisp Forever
Семантически кажется особенного ничем. В С++ лямбды устроены примерно так же, кстати. В рантайме исполняемый код не создаётся и не удаляется.
источник

VM

Vyacheslav Mikushev in Lisp Forever
Объект называют «объектом первого класса», если он[3][4]:

может быть сохранен в переменной или структурах данных;
может быть передан в функцию как аргумент;
может быть возвращен из функции как результат;
может быть создан во время выполнения программы;
внутренне самоопознаваем (независим от именования).
источник

VM

Vyacheslav Mikushev in Lisp Forever
Функция в C нельзя создать и передать в другую функцию.
источник