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