| Comments: |
Я тоже думал над эти вопросом.
Мой вывод таков, что упорядоченная структура естественна, что ли более физичная. Если что-то размещается в физическом пространстве, то там будет какой-то порядок, который перейдет на элементы в множестве. Можно представить те же ленты в машинах Тьюринга/Поста или если явно записать конечное множество в строчку {x,y,z} то мы неявно задаем порядок x > y > z. Это все банальности, но те же рассуждения работают и в большей размерности, так как их тоже можно упорядочить и порядок унаследуется структурами данных. Так как наши компьютерные технологии имеют физическую реализацию из этого вытекает первичность упорядоченных структур в программировании. Вопрос, правда ли математика свободна от физического и поэтому выбирает неупорядоченные структуры? Или это был просто сознательный или случайный выбор основателей Теории множеств. Вроде как теория типов аля Сalculus Of Constructions эквивалентна логике первого порядка, и по этому на ней можно строить математику, но там будут не вычисляемые функции.
А что касается неупорядоченной пары в программировании, то там и не должно быть функций former,latter. Должна быть функция in: Pair(T) -> T -> Bool . Тогда пара из одинаковых элементов будет эквивалентна множеству из одного элемента. Но где-то все равно будет упорядочено, хотя бы в памяти компьютера
| From: | phantom |
| Date: | December 31st, 2020 - 02:13 am |
|---|
| | | (Link) |
|
Так логический тип ещё не определён. Он ведь тоже опирается на пару true/false. Но я только что придумал, как реализовать проекции в неупорядоченной паре, добавил к посту как "P. P. S.".
Да, текстуально математика и программирование эквивалентны, изоморфизм программ-доказательств (Карри-Ховарда). Сalculus Of Constructions это coq? Я тут повтыкал в его библиотеку и код, но трудно там сориентироваться с ходу.
Выбор множества как основания в математике был не случайным, оно упрощает нотацию и доказательства. Но это математика, а если брать и её, и программирование, и философию?
Математика свободна от физики - для меня это очевидно. Загадка, почему физика абсолютна несвободна от математики.
Порядок в физическом пространстве я бы раскритиковал. Нету в двумерном и трехмерном пространстве "естественного" порядка. В одномерном физическом пространстве только есть. И как только мы записываем текст, сразу появляется. Например, перечисляя что-либо, скажем, точки в пространстве, сразу вводим порядок.
Но мысль твою я ухватил, проявление компьютера в "реальном мире" при переходе в физику форсирует порядок. Но, возможно, только пока мы пользуемся лентой или линейной памятью? Может быть, этого можно избежать в dataflow programming, где программа - это граф? Или в компьютере на клеточных автоматах, "игра жизнь"?
>Сalculus Of Constructions это coq
типа того
>Математика свободна от физики - для меня это очевидно. Загадка, почему физика абсолютна несвободна от математики.
C этим я не согласен. Само существование математики оправдывается тем, что это хороший язык для физики. Или как говорят нарратив описывающий физическую реальность. Для того, чтобы представить как это работает не нужно особо сложной математики. Например, мы можем проверить, что наше понимание натуральных чисел верно. Если кто-то утверждает, что 6 + 1 = 5, то мы можем обратиться к счету физических предметов, и таким образом экспериментально фальсифицировать это утверждение. Таким образом происходит якорение математики в физике, где якорь это условно просто математика. Причем, простая математика не значит элементарная: например, тензорное исчисление это якорение в ОТО. При этом физика в математике, конечно, ничего не доказывает, а доказывает все логика. И логика позволяет расширять имеющуюся математику индуктивным способам, получаю более сложную математику. Например, из натуральных чисел, получая бесконечные кардиналы. И уже валидность и научность этой сложной математики базируется на логике и фальсифицируемости математики простой. Поэтому нет ничего удивительного, что математика так хорошо подходит физике, ведь это платье сшитое на заказ.
> Порядок в физическом пространстве я бы раскритиковал. Нету в двумерном и трехмерном пространстве "естественного" порядка.
Ну в одномерном пространстве его на самом деле тоже нету. Можно писать слева направо, или справа налево. Ни один из них не естественный. И то, что мы воспринимаем определенный порядок это все зависит от культуры или технических предписаний, как в случае с чтением файлов, и в итоге все равно от культуры. С многомерным пространствами то же самое, просто вариантов бесконечно много. Но если с ними работать, то, наверняка, рано или поздно появиться привычка. Может, конечно, связано с тем, что у человека одномерная речь, и можно сделать машину свободную от этого. Во всяком случае, там все равно будет некая структура размещения, которой нет у множеств в математики.
Если использовать другие типы вычислений и программ, опять же будет размещения и субъективный порядок. Стандартный порядок обхода графа, например.
>"P. P. S."
Это очень похоже на то как упорядоченная пара конструируется в обычной теории множеств (x,y) = {x,{x,y}}.
Ага, я видел, как пара там конструируется обычно. Но как там определяется проекции, например, "взять второй элемент"?
Ну, в порядке бреда, в ZF, если заведомо известно, что в множестве всего два элемента, то можно брать элемент с наименьшим рангом как первую проекцию. А вторую проекцию как разницу элемента с наибольшим рангом и наименьшим.
Но скорее там проекции вообще не вычислимые функции. И все определяется через универсальное свойство.
На одномерной последовательности чисел, целых, рациональных или вещественных, порядок задаётся естественным образом вслед за натуральными числами, по построению структур. А там уже естественный порядок задаётся функцией инкремента, самой "корневой" функцией натуральных чисел.
"Справа-налево" или "слева-направо" или "сверху-вниз" - действительно, культурные особенности. К слову, на целых числах "слева-направо" или наоборот, получается негацией, т.е. это одно и то же. Впрочем, ориентации такой и в вещественных числах нет, и даже в последовательностях, правильней мыслить в терминах "голова-хвост". Я представляю список визуально как "голова здесь", остальное (тело, змея, сосиска) уходящее от наблюдателя к горизонту (в туман, горизонта тоже нет). Ориентация - это не то же, что и порядок, разные концепции.
Порядок на некривых пространствах размерностью 2 и выше задаётся нумерацией, собственно. Т.е. биекцией на натуральные числа. Например, для бесконечных матриц (последовательности с 2 индексами) - типична нумерация побочными диагоналями... но неестественна.
Это извечный спор математика и физика, платониста и материалиста, Аполлона и Кибелы. Мы принадлежим разным логосам, противоположным религиозным догмам.
Но будем спорить. Например, начнём с вопроса: как ты объясняешь существование математических структур, не имеющих никаких приложений в физике и, очевидно, для которых таких приложений не появится никогда?
А не важно есть ли приложения в физике или нет. Важно, что элементарные конструкции в математике как-то соответствуют физическому опыту людей. Натуральные числа соответствуют, тому как пастух считал овец. Целые числа, тому как сверял дебет торговец. Действительные числа, соответствуют измерениям инженера. И отсюда у людей появилась интуиция числа.
А потом исходя из этой интуиции, пользуясь фантазией и способность к обобщению можно построить p-адические числа, у которых как минимум, когда их открыли, не было приложений в физике. Но той интуиции, которая уже была, было достаточно, что ощутить их значимость и заинтересовать математиков. Аналогия тут может быть, такая, что можно плавать у берега и заниматься только физическими вещами, а можно поднять парус и уйти глубоко в море, так что берега не будет видно. Но все равно останется какая-то точка от которой было совершенно отправление вглубь. Или можно начать рассказ с описания понятного повседневного опыта, а потом начать добавлять туда фантастические детали и сюжетные ходы и это все равно выглядеть как увлекательный рассказ, пока не нарушаются определенные законы логики повествования.Все ограничивается опять же человеческой фантазией, а я убежден, что фантазия безгранична!
Можно конечно придумывать произвольные математические структуры. Например можно придумать множества с пятью тернарными операциями, на которые есть какие-то соотношение. Но это будет не интересно. А то, куда направлено внимание в математики это тоже часть математики по сути.
Очень даже интересно, мне, например. И в "универсальной алгебре" это объект для изучения. Впрочем, неважно, куда "внимание" направлено кучки математиков из элитарных стойл "академии", ведь именно приложения и деньги диктуют текущую актуальность "внимания". И всегда диктовали, за редкими исключениями. Поэтому аргументы к "интересности" - это порочный круг, самореализующееся предсказание.
Отличный аргумент и метафора хорошая про лодку. Однако, как только она отходит от берега, сразу же, немедленно, она перестаёт быть "земной" и становится "морской". Нет смысла "помнить свои корни": что общего между человеком и нашим предком, рыбой, барахтающейся на берегу в грязи? Нет смысла "писать историю": идеи не принадлежат нам, кто может "открыть" вечное?
В мире теней есть два огурца и три помидора, но их существование зыбкое, как существование тени. Есть подлинный мир, где в безвременье существует абстрактная идея числа, и есть её тень, загрязнённая "огурцовостью" и "помидорностью". И наоборот, в "реальном" мире, мире теней не может существовать чистого числа.
Цель человека в том, чтобы осознать это, и сделать шаг, отбросив несущественные свойства, прийти к абсолютной форме. И не все, кстати, народы даже смогли этот шаг сделать для (натурального) числа. Но когда этот шаг сделан, то это уже трансцедентальный шаг за пределы. И к слову, обычная интуиция в этом истинном мире пасует. Да она даже в "физике" пасует часто.
| From: | (Anonymous) |
| Date: | December 31st, 2020 - 03:43 am |
|---|
| | | (Link) |
|
это очень новая парадигма! свежая
| From: | phantom |
| Date: | December 31st, 2020 - 01:50 pm |
|---|
| | | (Link) |
|
Очень смешно, хаха.
Ну, у меня два ответа: традиционный (т) и радикальный (р). т) Если ты переводишь книгу, то нужно быть скучным, как традиционно переводят на русский книги по программированию. То есть тупо "условный тип данных" и сноску из лучших побуждений: "в миру это обычно называется так". Кстати, автор имеет в виду не совсем "условный тип данных", а "условные данные", но это ещё корявей. т) У Кришнамурти это не первая книга, поэтому нужно посмотреть, если перевели его предыдущие книги (Programming Languages: Application and Interpretation), какие использовали там термины. И продолжить скучную традицию, так сказать. Ещё стоит учесть историю самого автора - в этом случае он работал над схемой и рэкетом, значит, можно посмотреть и другие переводы схем-литературы (Essentials of Programming Languages?). р) Есть дурацкая тенденции у изобретателей языков с двумя возможными оправданиями. Придумывать новые термины, что, в принципе, правильно, - но не ссылаясь на другие названия для того же, что неправильно, если автор хочет быть понятым. Особенно это типично для книг, учащих программировать "с нуля". Оправдание так себе, теряются связи, аналогии разрываются. Второе оправдание, если книги "для детей", то "для них же надо упростить всё". Сам я детей не учил, но думаю, надо к ребёнку подходить как к "маленькому взрослому", "пигмею", и готовить (терминологически) к выходу в большой мир академической литературы и быдлокодинга. А не подходить к детям как к недоумкам, они это почувствуют и не оценят. р) Нахрена, вообще, книги переводить? Дети ли, взрослые, всем учить английский, койне современного мира. Кто не знает, учить на предмете этих же вот книг, а по программированию - это самые простые для изучения языка книги. Кто не выучит, останется провинциалом, а в программировании, вообще, работать не сможет. р) Не думаю, что это случай Кришнамурти, но многие изобретатели "практичных языков" просто тупые, "чукча не читатель", чтобы узнать, как оно называется в миру. И поэтому "изобретают" термины, а не для того, чтобы выебнуться. Особенно всякие там Россумы, в голове бардак, и в языке (типа питона) бардак. Современная же тенденция отойти от схемы и прийти к питону, начиная с МИТ, и кончая вот этой книгой с "пиретом", не радует. Насаждает бардак уже в головах учащихся. т) Вообще, тот тип называется обычно ADT = algebraic data type = алгебраический тип данных. Можно начать со статьи: https://en.wikipedia.org/wiki/Algebraic_data_type и там по ссылкам. Но кто как называет его и частные случаи... Также переводить ли "условный тип данных" или "условные данные" зависит от взглядов автора и переводчика на типизацию и вывод типов. Есть нюансы, и хорошо бы в них разбираться при переводе: часто путают динамическую типизацию и нетипизированность (я уж молчу про "слабую" типизацию). р) Область молодая, терминология неустоявшаяся. Да если даже если и устоялась, что с того. Найди свои названия, и не бойся быть непонятым. Особенно если не с кем говорить на эту тему. Если цель не перевести книгу для кого-то, а самому разобраться, то своя терминология будет "наиболее правильной".
>т) Если ты переводишь книгу, то нужно быть скучным, как традиционно переводят >на русский книги по программированию. То есть тупо "условный тип данных" и >сноску из лучших побуждений: "в миру это обычно называется так". Кстати, автор >имеет в виду не совсем "условный тип данных", а "условные данные", но это ещё >корявей. Об том и речь, что «условный» выглядит неудачно. >р) Нахрена, вообще, книги переводить? Дети ли, взрослые, всем учить >английский, койне современного мира. Кто не знает, учить на предмете этих же >вот книг, а по программированию - это самые простые для изучения языка книги. >Кто не выучит, останется провинциалом, а в программировании, вообще, работать >не сможет. Прекрасно, ага. Значит ли это, что вся учёба должна быть за пределами школы и универа? Потому что в школе я точно не могу от них требовать читать книги на английском. В моём личном случае на первом курсе нам препод советовал книги на английском, но говорил, что у него нет права строить программу курса на английских книжках, поэтому основной книгой была выбрана какая-то дебильная переведённая из серии head first. Я им конечно постоянно говорю, что без английского вам дальше делать нечего, и читать надо именно самим, а не целиком скармливать яндекс/гугл переводчику целые страницы. Но это так себе работает, по-моему. >Современная же тенденция отойти от схемы и прийти к питону, начиная с МИТ, и >кончая вот этой книгой с "пиретом", не радует. Насаждает бардак уже в головах >учащихся. Ну надо сказать, что Шрирам сам ругает Python и не считает его пригодным для обучения программированию, насколько я знаю. И от Scheme он сам не отходит, есть версии курсов Bootstrap для школьников как с Pyret, так и с WeScheme[1]. >т) Вообще, тот тип называется обычно ADT = algebraic data type = >алгебраический тип данных. Можно начать со статьи: > https://en.wikipedia.org/wiki/Algebraic_data_type и там по ссылкам. Но кто как >называет его и частные случаи... Также переводить ли "условный тип данных" или >"условные данные" зависит от взглядов автора и переводчика на типизацию и >вывод типов. Есть нюансы, и хорошо бы в них разбираться при переводе: часто >путают динамическую типизацию и нетипизированность (я уж молчу про "слабую" >типизацию). Про ADT я в курсе конечно, да. >р) Область молодая, терминология неустоявшаяся. Да если даже если и устоялась, >что с того. Найди свои названия, и не бойся быть непонятым. Особенно если не с >кем говорить на эту тему. Если цель не перевести книгу для кого-то, а самому >разобраться, то своя терминология будет "наиболее правильной". Я у самого Шрирама спрашивал например про название одной из глав[2], выяснилось, например, что «Sub-Domains» у него это ограничение областей функций. Типа есть `max :: List -> A`, так вот у неё область ограничена в том смысле, что на пустом списке функция смысла не имеет, поэтому не определена.
Надо мб и про conditional спросить у него же, чтобы подробнее расписал.
Я это и для себя читаю/учу и школьникам пересказываю, но я считаю, что проблем у них быть в дальнейшем не должно, если они увидят те же самые вещи, но названные по-другому.
[1] https://bootstrapworld.org/materials/spring2021/en-us/courses/algebra-wescheme/ [2] https://papl.cs.brown.edu/2016/processing-lists.html#%28part._struct-prob-sub-dom%29
Так спроси, раз он отвечает. Интернет ведь не только для качалова, а и средство коммуникации. Даже с оригинальными авторами, кто ещё жив. Какова цель школьного образования? Привить человеку "ядро культуры". Можно ли усвоить современное "ядро" без английского? Нет. Значит, нужно научить английскому в дошкольном и начальном школьном образовании, чтобы к середине школы, и уж точно к университету, он читал техлитературу без словаря. Я, вот, осилил к универу, и это было непросто, помнится. Как сейчас, не знаю, надеюсь, эта идея пробивается в РОНО и получает поддержку, или кто там рулит сейчас. Как учить эффективно языку - другой вопрос. Я бы использовал естественную лёгкость освоения второго языка "как родного" в самом юном возрасте (дошкольном). Программирование нужно осваивать, упражняясь. С упором на практику, язык учебника не так важен, учебник вторичен. Да и язык программирования не так важен. Но чтобы проводить параллели между ЯП, нужно освоить второй ЯП, а может, и третий. Тогда и вещи узнаваться будут, и может, тяга к расширению горизонта появится. Сам я начинал с бейсика, традиция, освящённая веками. Это ещё хуже питона засоряет мозг. Долгие годы чистил сознание, выработка стройной системы была затруднена этим самым бейсиком. И это общее мнение, что с бейсика начинать - программистов будущих портить. Значит, важен первый язык. Я бы начал с самых чистых языков. И если это физматшкола, то лучше всего - функциональный ЯП. И чем чище, тем лучше. Даже схема недостаточно чиста, там императивные конструкции допускаются. Хаскелл, может быть? В некоторых университетах его как первый язык учат: https://wiki.haskell.org/Haskell_in_education#Haskell_as_a_first_languageТут я также утверждаю, что освоить "чистые" варианты, "грязные" сам уже студенто освоит... В общем, я против "практичного" подхода плодить "быдлокодеров" со школьной скамьи.
>Какова цель школьного образования? Школа, армия, тюрьма. Ну ты понял. И я в своё время так и воспринимал её, а всем интересным занимался сам в свободное время за пределами школы. >Можно ли усвоить современное "ядро" без английского? Нет. Значит, нужно >научить английскому в дошкольном и начальном школьном образовании, чтобы к >середине школы, и уж точно к университету, он читал техлитературу без словаря. >Я, вот, осилил к универу, и это было непросто, помнится. Да всё понятно, я ж только за. У них вот, по их же словам, английский со 2 класса, а что толку-то, если они даже кейворды типа else читают неправильно. Есть подозрение, что это потому, что у них вместе с этим ещё пытаются немецкий преподавать (поэтому каша в голове), но нахуя, спрашивается, если русский толком ещё не доучили. И вот то же else они читают так, как будто это немецкое слово. >Как сейчас, не знаю, надеюсь, эта идея пробивается в РОНО и получает >поддержку, или кто там рулит сейчас. Ага, конечно. Сейчас модно soft skills, вся вот эта убогая болтология ни о чём, рассчитанная на дебилов, видимо. Единственное, что радует, --- это свобода. Могу в поурочном планировании писать одно (по утверждённым учебникам), а в реальности заниматься совсем другим. >Но чтобы проводить параллели между ЯП, нужно освоить второй ЯП, а может, и >третий. Тогда и вещи узнаваться будут, и может, тяга к расширению горизонта >появится. Да, после Pyret будет точно Python, потому что неизбежно, потому что удобный язык для быстрого скриптования каких-то вещей, для ЕГЭ им пригодится (можешь глянуть, как оно будет в 2021 году, всё на компьютере). Для сравнения ещё можно показать например Haskell, который будет многим похож кстати на Pyret, ADT например или pattern matching они должны опознать. Ну и основное --- не инструкции, а выражения, которые редуцируются. Это типа в первой же главе книжки описывается подробно. И типа вот, есть два подхода: Python и Haskell. Возможно, ещё Prolog какой-нибудь, но его я сам не трогал, и не знаю, стоит ли. Параллельно с этим ещё дал им задание в прошлой четверти поставить Линукс какой-нибудь на виртуалку, и там научиться базовым вещам в терминале. Мотивация была озвучена такая: оно (а) нужно более-менее всем людям, чья работа связана с IT сейчас; и (б) посмотрите на учебный план топовых факультетов типа ФКН ВШЭ или ФМКН СПбГУ и заметьте, что в 1 или максимум 2 семестре есть предмет, посвящённый Линуксу, и лучше эти вещи выучить заранее, т. к. ничего сложно в них нет. Ну и предполагается, что они должны также заметить, что многие вещи проще намного делать в терминале. Всяческая обработка текста например (отсюда вытекает важность представления информации в plain text везде, где это можно). >Я бы начал с самых чистых языков. И если это физматшкола, то лучше всего - >функциональный ЯП. И чем чище, тем лучше. Даже схема недостаточно чиста, там >императивные конструкции допускаются. Хаскелл, может быть? В некоторых >университетах его как первый язык учат: А ты посмотри на Pyret-то, там чисто функциональщина же, выражения и значения как результат их вычисления. Функции для повторяющихся выражений, тесты(!) для функций пишутся до написания тела функции, выглядит так: fun f(a, b):
a + b
where:
f(1, 2) is 3
f(-1, 1) is 0
f(0.1, 0.2) is 0.3
end Есть сопоставление с образцом: fun my-len(l):
cases (List) l:
| empty => 0
| link(f, r) => 1 + my-len(r)
end
endЗа две четверти дошли до главы про списки https://papl.cs.brown.edu/2019/processing-lists.html
Не, вообще, всё замечательно, и главный компонент - это ты. В школьном возрасте учитель-энтузиаст - это счастье ученика.
Помню, как мне повезло в последние годы школы с учителем физики, и насколько резкий был поворот. До того - в физике непонятно ни хрена, вообще. С ним - стало всё ясно в пределах школьной программы, и самое главное, - воодушевил он меня на всю жизнь. До серьёзного изучения физики руки за все эти годы так и не дошли, но авось, доберутся ещё. Впрочем, сам я тяготею к абсолютно нефизичному, так что всё норм.
Насчёт soft skills, это, боюсь, не болтовня, а проза жизни. Как питон. Если идёт чел наниматься быдлокодером, его, в первую очередь, оценят как "коммуникатора", "тим-плеера" и пр., потом спросят за питон и "веб". А уж знание ФП только минусом будет. Мне кажется, это два противоположных направления - учить практиков-прагматиков-питонистов, и учить лисперов-адептов-брахманов.
Я пролистнул книгу, неплохая с виду. И Кришнамурти и схемерам можно доверять в плане ФП и квалифицированности.
Я даже, помню, как-то пробовал, кажется, онлайн курс по ЯП брать у него. Кажется, по его книге или по EoPL. Только быстро забил, домашние задания не понравились, и я понял, как мне самому двигаться к совершенству, альтернативным способом.
Да, ещё для детей, мотивации и развлечения, я бы посоветовал geogebra-у попробовать, для обучения геометрии по-новому. Впрочем, ты, кажется, под влиянием, Вербицкого и ко., а он геометрию школьную за предмет не держит, и учебник Погорелова презирает, как оказывается.
Geogebra можно, да, но я математику у них не веду. И их училка про существование Геогебры знает вроде. Я со своей стороны хочу им подсунуть например такое --- https://math.ru/lib/files/pdf/rasomn.pdf --- этого точно у них на математике нет и не будет, а знать надо, на первом курсе легче будет. >Впрочем, ты, кажется, под влиянием, Вербицкого и ко., а он геометрию школьную >за предмет не держит, и учебник Погорелова презирает, как оказывается. Я не то чтобы под влиянем, я классе в 7 помню как не понимал, зачем заучивать наизусть какую-то «теорему», какое-то и без того очевидное предложение --- это был один из первых уроков геометрии, заучить формулировку теоремы было домашкой. С тех пор у меня с планиметрией как-то не очень. Хотя в 11 классе конечно мы решали много задач, и по стереометрии тоже, для ЕГЭ, и я их успешно на экзамене решил, но осадок остался. А тут же --- про функции/множества --- всякие шокирующие факты типа того, что в квадрате столько же точек, сколько и в отрезке. Мне кажется, такое больше должно внимания привлечь.
Да уж, ЕГЭ и Болонская система - это дегуманизация, механизация образования, не поддерживаю.
Теоремы не заучивать надо, а доказывать. Обычно это доступно только в университете, к сожалению (не в смысле, что не хватит ума, а в смысле "нематематичности" школы, ориентации на заучивание).
Должно привлечь, по-любому. Но я бы посоветовал "школу Опойцева", по-моему, это то, что надо. Его книга "Интуиция и математика" (под псеводнимом Босс) на меня произвела неизгладимое впечатление. По школьной программе его не продвинулся, но кажется, это то, что доктор прописал.
Кстати ещё, что удивительно по-моему, HtDP до сих пор не переведена. SICP перевели, а эту --- нет.
Так SICP - олдовый, а HtDP - "свежачок". Грубо говоря, до 2000 года ещё инерция СССР, даже ЯП русском, подход академика Ершова, кстати, а после - новая Россия, переведут только за деньги, прибыль или смерть не опубликуют. Ещё грубее говоря, это провинция и реставрация местечковости, кто не выучит английский, марширует с ней же на задворки цивилизации. | |