LINUX.ORG.RU

История изменений

Исправление DarkEld3r, (текущая версия) :

Yahoo купил Viaweb, написанный на Common Lisp, за 49 миллионов долларов, а затем весь код переписал на C++ и Perl.

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

Там есть некий аналог тайпклассов: https://docs.racket-lang.org/reference/struct-generics.html

В ракете чего только нет. (:

Но чтобы этим было удобно пользоваться нужно чтобы оно использовалось везде (как тайпклассы в хаскеле или трейты в расте).

то есть доопределить реализацию, если первый аргумент удовлетворяет некоему предикату.

Если я правильно понял что значит racket:+, то это ведь не будет работать, если так решат сделать две независимых библиотеки? Ну и в целом, наверное, будет странно, если библиотека будет экспортировать переопределённую «стандартную» функцию?

C, C++, python, JS, …

Давай определимся о чём мы говорим. Если просто о возможности сделать функцию принимающую произвольное количество параметров произвольных типов, то ладно. И то в С работать с этим такое себе удовольствие. Но ни один из этих языков не предоставляет из коробки функции сложения, которые работают именно так.

Исходная версия DarkEld3r, :

Yahoo купил Viaweb, написанный на Common Lisp, за 49 миллионов долларов, а затем весь код переписал на C++ и Perl.

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

Там есть некий аналог тайпклассов: https://docs.racket-lang.org/reference/struct-generics.html

В ракете чего только нет. (:

Но чтобы этим было удобно пользоваться нужно чтобы оно использовалось везде (как тайпклассы в хаскеле или трейты в расте).

то есть доопределить реализацию, если первый аргумент удовлетворяет некоему предикату.

Если я правильно понял что значит racket:+, то это ведь не будет работать, если так решат сделать две независимых библиотеки? Ну и в целом, наверное, будет странно, если библиотека будет экспортировать переопределённую «стандартную» функцию?

C, C++, python, JS, …

Давай определимся о чём мы говорим. Если просто о возможности сделать функцию принимающую произвольное количество параметров произвольных типов, то ладно. И то в С работать с этим такое себе удовольствие. Но ни один из этих языков не предоставляет из коробки функции сложения, которые работают именно так.