Икс не равен самому себе
lex_kravetski — 11.02.2021 Что-то давно не было про диалектику. И про программирование. Сейчас я экстренно наверстаю.Есть умопомрачительная типа закономерность, которая, видимо, полагается диалектиками столь однозначно доказывающей превосходство диалектического мышления над хернёй, почему-то полагаемой ими «формальной логикой», что они стараются пихать её как убер-аргумент в каждую бочку. И звучит она как-то так.
«Я равен самому себе — а иначе как же меня друзья-то опознают? Однако я не равен самому себе, поскольку не влезаю в те штанишки, которые носил в десять лет. Шах и мат, формальнологисты!».
Без балды, после прослушивания бреда Попова о бреде Гегеля месяцами напролёт такое действительно может поразить до глубины души, но вроде бы тому, кто занимался всё это время чем-то интеллектуальным, должно сразу быть понятно, как зовут сову, натянутую тут на глобус.
Тем не менее, я готов поделиться с общественностью ещё более крышесносящим примером — прямо сразу на формальнологическом языке программирования Java.
Integer x = 129; Integer y = 129; System.out.println( x ); // 129 System.out.println( y ); // 129 System.out.println( x == y ); // false
Вот где настоящая борьба синтеза с гестерезисом! Английским по бежевому написано, что «икс равен 129, и игрек тоже равен 129», а проверяешь — хрен там! И без пол-Энгельса далеко не каждый поймёт, почему оно так.
Но ещё интереснее будет, если написать теперь…
System.out.println( x == y + 0 );
Неожиданно, результат — true.
Ну, тут точно формальная логика бессильна — икс не равен игреку, который равен тому же числу, что и икс, но при этом икс равен игреку, которому он только что был не равен, если к игреку прибавить ноль. Тут бы даже Ильенков трижды перекрестился: отсутствие изменений, видимо, тоже следует считать изменениями, и, с другой стороны, нулевое изменение возвращает нас к неизменности.
Красиво я сказал, да? Самое время свой философский университет организовывать и назначать себя его директором.
Правда, в языке Scala, сделанном ещё более формальнологическими формальнологистами, такая фигня уже не работает. Видимо, отступили, негодяи, от корней и попрали все устои. Гегеля на них нет.
Хотя, как знать, может, наоборот, они встроили себе в язык диалектику, чем устранили из него диалектические проявления.
Однако, что ещё более интересно, если понять, почему в Java хэппенс такой шит, то можно почти мгновенно вычислить имя сабжевой совы из примера про «я-не-равного-самому-себе».
Ну ладно, если этот пример вам всё-таки крышеснёс, но не прояснил, а потому вы не поняли, я из жалости к человечеству поделюсь с вами примером попроще.
Integer x = 129; Integer y = x; x = 200; System.out.println( x == y ); // false
Смотрите, тут тоже какая-то фигня: мы написали, что «икс равен игреку», а всего через одну строку проверили — не равен! Как такое вообще может быть?
Кто-то скажет «так нечестно — вы поменяли икс», чем слегка унизит диалектиков с их убер-примером, но я в ответ на это скажу: «всё равно вам шах и мат!».
Давайте попробуем то же самое на Wolfram.
x := 129 y := x x := 200 x == y (* True *)
Вот так-то, скептики. Java и Wolfram вроде бы одно и то же считают прямо противоположным. Поскольку же написанные на них программы работают, они оба правы (и это, кстати, даже уже не шутка — они действительно в этом оба правы). Поэтому икс одновременно равен и не равен игреку.
В общем, программисты, сто пудов, постоянно используют диалектику, поскольку разве же можно такие чудеса объяснить примитивной формальной логикой?
doc-файл
|
</> |