Преамбула. Среди математиков гуляет крылатая фраза "Бог создал натуральные числа, остальное - дело рук человека". На самом деле, если википедия и словарь немецкого нам не врут, то Кронекер сказал про целые, а не натуральные, и рук там тоже не было (что логично, остальную математику человек создал по большей части не руками).
Амбула. Предположим, что Бог действительно создал натуральные или целые числа. Из соображений божественности :) понятно, что все-таки натуральные, а не целые, отрицательное число отчетливо небожественно. Таки у меня к вам два вопроса.
1. Какую именно структуру создал Бог?
2. Ноль входит?
Понятно, что натуральные числа можно задавать разными способами. Понятно, что просто натуральный ряд, без операций, Бог не создавал, смысла нет. Понятно, что, скажем, вычитание и деление не входят (множество натуральных чисел относительно них не замкнуто). Очевидно, что и, скажем, факториал тоже придуман людьми. А какие операции божественны?
Я ставлю на: единицу (ноль не входит), следующее число (AKA +1), и... а вот что "и"? В основаниях математики тут используют рекурсию. Но рекурсия - понятие, мягко говоря, недетской сложности, его в школе до сих пор фактически не дают. Даже в вузах проходят построение целых чисел, рациональных, предела, действительных, производной, интеграла, и с легкостью доходят до гребеней математической статистики, рекурсию даже не упомянув. Между тем сложение детям, если объясняют, то объясняют по сути через примитивную рекурсию... Хотя нет, через итерацию. Через разворачивание числа в последовательность. Умножение тоже так вводят. "... и понятие последовательности"?
Амбула. Предположим, что Бог действительно создал натуральные или целые числа. Из соображений божественности :) понятно, что все-таки натуральные, а не целые, отрицательное число отчетливо небожественно. Таки у меня к вам два вопроса.
1. Какую именно структуру создал Бог?
2. Ноль входит?
Понятно, что натуральные числа можно задавать разными способами. Понятно, что просто натуральный ряд, без операций, Бог не создавал, смысла нет. Понятно, что, скажем, вычитание и деление не входят (множество натуральных чисел относительно них не замкнуто). Очевидно, что и, скажем, факториал тоже придуман людьми. А какие операции божественны?
Я ставлю на: единицу (ноль не входит), следующее число (AKA +1), и... а вот что "и"? В основаниях математики тут используют рекурсию. Но рекурсия - понятие, мягко говоря, недетской сложности, его в школе до сих пор фактически не дают. Даже в вузах проходят построение целых чисел, рациональных, предела, действительных, производной, интеграла, и с легкостью доходят до гребеней математической статистики, рекурсию даже не упомянув. Между тем сложение детям, если объясняют, то объясняют по сути через примитивную рекурсию... Хотя нет, через итерацию. Через разворачивание числа в последовательность. Умножение тоже так вводят. "... и понятие последовательности"?
Tags:
no subject
... Асимметричный дуализм языкового знака ...
no subject
Тем не более, в ней есть некоторая корреляция, на которой основана возможность взаимодействия между особями. Как правило, интерпретация одного яблока как одной антоновки или одного фрукта - это уже искусственное действие, причем чаще твой собеседник воспримет ее как троллинг, чем как специфический подход к задаче. При том, что "яблоко" - это само по себе уже довольно сильная абстракция. Но - естественная.
Ты никогда не обращал внимания на байки того типа, что дети на начальной стадии обучения арифметике довольно хорошо складывают антоновки с грушевками, а вот яблоки с апельсинами - плохо? Они правы. Они еще не оторвались от жизни, а в жизни я не могу придумать неизвращенную задачу, в которой было бы все равно, что у тебя есть - 5 яблок или 2 яблока и 3 апельсина. Задачу, в которой не все равно, антоновка у тебя или грушевка, могу, но во всех, что придумываются, в принципе годятся обе, только если уделять внимание сорту, то результат будет лучше. Ну там, в шарлотку лучше антоновку, а в варенье грушевку.
А вот к нулю любая размерность искусственна.
А так да, в строго типизированном языке, типа хаскеля, даже без явного объявления типов нельзя объединить пустой список целых с пустым списком символов. Хотя обозначать их одной константой при этом можно :) Но глядя на одну эту константу саму по себе, ты не сможешь определить, пустой список чего это. Строго говоря, глядя на [1,2,3], ты тоже не сможешь сказать, [Int] это, [Double] или [Word8]. Но по крайней мере это будет список каких-то чисел, и числовые операции (тайпкласс Num) с ними будут давать ожидаемый результат. Ты можешь быть уверен, что foldr (+) 0 [1,2,3] тебе в любом случае выдаст 6, вне зависимости от контекста. А с [], не зная контекста, ты ничего сделать не можешь, кроме проверки на пустоту.
no subject
Printf.printf "%s = %d\n" "magic" 42;;
Просто первая строчка в кавычках имеет тип не string, а, щас,
(string -> int -> unit, out_channel, unit) format
(мне пришлось немножко подумать, чтобы заставить интерпретатор это вывести). С монадами там не заморачиваются, с точки зрения ввода-вывода язык просто процедурный, но с типизацией там всё аккуратно. :-)
... На палатку падали чипы холода ...
no subject
Хаскельный Text.Printf.printf в этом смысле устроен хуже и кидается исключениями, если недодать параметров. Хотя форматная строка константная и можно было бы при компиляции проверить. И все наработки на эту тему, похоже в состоянии experimental...
no subject
... Зачем мне ДВЕ шизофрении? ...