только вот можно рассматривать не означает одно и то же. Более того, это далеко не всегда возможно — мир не ограничивается множествами, в которых любые пределы существуют.
Да нет, вы как раз всё правильно поняли. Мой ответ был на этот комментарий.
Функция — это всегда тройка a, b, f — домен, кодомен, правило отображения; f: a -> b. Функция двух вещественных аргументов, например, имеет доменом RxR; а каррированная функция трёх аргументов имеет кодоменом, вообще говоря, функциональное пространство.
И чем нам поможет её естественность? Вектор-функция — отображение на векторное пространство, элементом (точкой) которого является вектор. Как было одно значение, так и осталось одно значение. Какова структура этого значения — это уже совсем другой вопрос, к функции отношения не имеющий.
Функция всегда принимает одно значение и возвращает одно значение. Даже если мы говорим о замкнутой категории, в которой возвращаемым (или принимаемым) значенеим может быть другая функция.
Значение произведения типов — это не несколько значений. То, что для эмуляции придумано много различных техник, отлично говорит за (не)естественность обсуждаемой операции.
Моим первым языком был Prolog, но ещё давеча я писал весьма низкоуровневый код под QNX. Какие далекоидущие выводы можно из этого сделать? Думаю, что никаких — не стоит обобщать не слишком умные фразы.
Без оного понятия эти вещи проблематично объяснить только в том случае, если вы используете язык уровня C и ниже. Посмотрите на Scheme, Haskell, Tcl или Prolog. Cons-ячейка — и то более естественный механизм работы со сложными структурами данных.
А функций, возвращающих несколько значений, вообще не бывает. Жаль, что вот этого в школе не объясняют — вместо указателей.
Язык Caml подойдёт? Он как бы Categorical Abstract Machine Language.
Ну или LINQ. Или Rx Framework. Хотя для меня куда более важным аргументом является, например, то, что понятие локализации кольца на языке категорий записывается раз в пять короче теоретико-множественного варианта.
Ни в коем случае! А рассматривать в качестве первого учебного языка язык, в котором зигохистоморфмные препроморфизмы не являются first-class value, вообще моветон.
Есть много различных причин для того, чтобы считать F-un существущим объектом — однако же все они так или иначе сопряжены с большими сложностями. До сих пор не разрешёнными сложностями, хотя тема в последние годы весьма популярна.
Всякое, тем не менее, случается. Попасть в облако аммиака или хлора куда проще, чем может показаться — и понимание того, какие действия в такой ситуации являются правильными, может стоить жизни.
Предельный переход не позволяет делить на ноль, он всего лишь позволяет ввести в стандартный анализ бесконечно малые величины (не приндлежащие R вследствие полноты по Дедекинду).
en.wikipedia.org/wiki/Equaliser_(mathematics)#In_category_theory
только вот можно рассматривать не означает одно и то же. Более того, это далеко не всегда возможно — мир не ограничивается множествами, в которых любые пределы существуют.
В этом — ничего. В реализации этого достаточно — от возврата через аргументы-указатели до boost.tuple.
Функция — это всегда тройка a, b, f — домен, кодомен, правило отображения; f: a -> b. Функция двух вещественных аргументов, например, имеет доменом RxR; а каррированная функция трёх аргументов имеет кодоменом, вообще говоря, функциональное пространство.
Хотя мало ли, что вы там под невинным символом f понимаете. Может, и правда не функция.
Функция всегда принимает одно значение и возвращает одно значение. Даже если мы говорим о замкнутой категории, в которой возвращаемым (или принимаемым) значенеим может быть другая функция.
А функций, возвращающих несколько значений, вообще не бывает. Жаль, что вот этого в школе не объясняют — вместо указателей.
Ну или LINQ. Или Rx Framework. Хотя для меня куда более важным аргументом является, например, то, что понятие локализации кольца на языке категорий записывается раз в пять короче теоретико-множественного варианта.
en.wikipedia.org/wiki/Field_with_one_element