Re[79]: Императивное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 08.10.12 20:05
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>>Способы решения задач определяются текущим уровнем развтия технологий применимых к конкретной области. Обработка данных — императивщина. Управление ресурсами — императивщина. Ввод-вывод — императивщина.

S>>Чушь

I>Чушь у тебя в голове, а это факты — в указаных областях императивный С++ рвет в хлам всех конкурентов, т.е. это основной и практически единсвтенный ЯП. Ну например если ты покажешь скажем ОС писаную не на с++... Ну, ты понял


Ну не сливайся ты так. Ведь никто тебе не говорит что надо забыть C++ и писать на чем-то еще. Тебе ведь говорят что не надо на нем учить программировать, это вредно.

Кстати обработка данных обычно декларативна. Самый массовый язык обработки данных — SQL — ни разу не императивен. Что ты имеешь ввиду под управлением ресурсами и вводом-выводом — непонятно.
Re[74]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 07:38
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Если взять подмножество функций — константы, то интеграл по отрезку [a,b] равен (b-a)*c или равен произведению сторон. А так как фигра, описываемая этой функцией, есть прямоугольник, то можно применять формулу для любых прямоугольников, независимо от их природы. Это я тебе описал процесс абстракции в рассуждениях.


OMG ! Интеграл это абстракция более высокого уровня нежели площать прямоугльника, просто по той причине что обобщение и есть инструмент доля получения абстракций более высокого уровня.
У тебя же в наличии КОНКРЕТНЫЕ признаки — фиксированая фигура. Отсюда ясно, что конкретное != абстрактное.


I>>Надо, но их нет. Следоватеьлно, прежде чем давать map надо дать такие абстрации как "последовательность", "итерация".

G>Да, так и делают. А еще раньше дают рекурсивные функции, а потом рекурсивные структуры данных, чтобы описать последовательности.
G>И все это укладывается в банальную модель подстановки, которую может понять третьеклассник. А вот изменяемое состояние в цикле с трудом понимают люди с высшим образованием.

Ну вот и дай рекурсивные структуры данных третьеклассникам, посмотри на результат.
Мне кажется ты путаешь две вещи — изучение некоторой теории и степень освоения оной.
Третьеклассник не умеет подстановки, вобще говоря, это появляется в 4-5 классе в зависимости от программы когда появляются уравнения и простейшие формулы.
Владение подстановкой означает определенное количество умозаключений которое ты можешь выполнять в уме без необходимости помогать себе костылями:
1. получить результат из N операций в уме
2. получить последовательность из N операций для получения нужного результата
В обоих случаях время на выполнение операции должноб быть очень мало. Скажем если на подстановку в простейшее уравнение тебе надо несколько минут, то про лямбдасчисление мпожно забыть. Несколько минут на такую задачу это хорошее время для тех, кто только начинает решать уравнения.
Re[82]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 07:40
Оценка:
Здравствуйте, samius, Вы писали:

S>ты ведь докапывался до этого вопроса

S>

S>Или к тебе на собеседования на позицию разработчика ФП приходят гуру ФП и не понимают map?

S>см http://www.rsdn.ru/forum/philosophy/4918116.1
Автор: Ikemefula
Дата: 05.10.12


И тебе не понятно, почему ответ да-нет не имеет смысла ?
"к тебе на собеседования на позицию разработчика ФП приходят гуру ФП" — "ты перестал"
"и не понимают map" — "пить палёную водку ?"

I>>По тактам, расходу памяти и тд., а то ведь детские программы для проверки концепций денег не приносят. Второй вопрос похоже означает что список из трех элементов сложноватая концепция,без map не обойтись

S>Блин, все я слился.

Вот так будет правильно

I>>Я выделил. 123123.

S>Что это? Индекс цитирования? отуда он?

Требовать индекс цитирования для сообщения на которое ты уже ответил это сильно. Как думаешь, почему мне приходится напоминать тебе некоторые свои ответы ?
Re[83]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 09.10.12 07:54
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


I>И тебе не понятно, почему ответ да-нет не имеет смысла ?

I>"к тебе на собеседования на позицию разработчика ФП приходят гуру ФП" — "ты перестал"
I>"и не понимают map" — "пить палёную водку ?"
Совсем не то же самое. любой ответ на "перстал пить" подразумевает что либо пил, либо еще пьешь. А ответ нет на мой вопрос подразумевает что на позиции разработчика ФП к тебе не приходят гуру, которые не понимают map.

I>>>По тактам, расходу памяти и тд., а то ведь детские программы для проверки концепций денег не приносят. Второй вопрос похоже означает что список из трех элементов сложноватая концепция,без map не обойтись

S>>Блин, все я слился.

I>Вот так будет правильно

Нет, не правильно. Это ирония. Ты все время мечешься между тем что после ВУЗ-а так тяжело входит ИП, но ФП еще тяжелее и тем что бы заставить оппонентов обучать ФП в 3м классе, да так что бы непременно ОС смогли написать.

I>Требовать индекс цитирования для сообщения на которое ты уже ответил это сильно. Как думаешь, почему мне приходится напоминать тебе некоторые свои ответы ?

какие-какие ответы? Я что их зазубривать должен? Было бы в них что ценного...
Re[80]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 08:28
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

I>>Чушь у тебя в голове, а это факты — в указаных областях императивный С++ рвет в хлам всех конкурентов, т.е. это основной и практически единсвтенный ЯП. Ну например если ты покажешь скажем ОС писаную не на с++... Ну, ты понял


G>Ну не сливайся ты так. Ведь никто тебе не говорит что надо забыть C++ и писать на чем-то еще. Тебе ведь говорят что не надо на нем учить программировать, это вредно.


А я по твоему предлагаю С++ использовать для обучения ? Дай цитату.

G>Кстати обработка данных обычно декларативна. Самый массовый язык обработки данных — SQL — ни разу не императивен. Что ты имеешь ввиду под управлением ресурсами и вводом-выводом — непонятно.


Обычно императивный код даёт наилучший результат. SQL это массовый язык, только покрывает мизерную часть задач обработки данных. Ресурсы, ввод-вывод — самый простой пример это драйвера, ОС и тд.
Re[84]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 08:32
Оценка:
Здравствуйте, samius, Вы писали:

I>>И тебе не понятно, почему ответ да-нет не имеет смысла ?

I>>"к тебе на собеседования на позицию разработчика ФП приходят гуру ФП" — "ты перестал"
I>>"и не понимают map" — "пить палёную водку ?"
S>Совсем не то же самое. любой ответ на "перстал пить" подразумевает что либо пил, либо еще пьешь. А ответ нет на мой вопрос подразумевает что на позиции разработчика ФП к тебе не приходят гуру, которые не понимают map.

Нет, не правильно. Гуру ФП который не понимает map — противоречение. Отсюда ясно, ты сам не понимаешь свой собственный вопрос.

I>>Вот так будет правильно

S>Нет, не правильно. Это ирония. Ты все время мечешься между тем что после ВУЗ-а так тяжело входит ИП, но ФП еще тяжелее и тем что бы заставить оппонентов обучать ФП в 3м классе, да так что бы непременно ОС смогли написать.

Когда я предлагаю давать ФП в третьем классе это сарказм. Я думал это очевидно

I>>Требовать индекс цитирования для сообщения на которое ты уже ответил это сильно. Как думаешь, почему мне приходится напоминать тебе некоторые свои ответы ?

S>какие-какие ответы? Я что их зазубривать должен? Было бы в них что ценного...

на мой взгляд ты пишешь ответы не читая. Потому я просто цитирую себя же что бы не тратить время.
Re[85]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 09.10.12 08:44
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


I>Нет, не правильно. Гуру ФП который не понимает map — противоречение. Отсюда ясно, ты сам не понимаешь свой собственный вопрос.

Противоречие чему? Тебе не пришло в голову что как "гуру" себя могут позиционировать соискатели?

S>>Нет, не правильно. Это ирония. Ты все время мечешься между тем что после ВУЗ-а так тяжело входит ИП, но ФП еще тяжелее и тем что бы заставить оппонентов обучать ФП в 3м классе, да так что бы непременно ОС смогли написать.


I>Когда я предлагаю давать ФП в третьем классе это сарказм. Я думал это очевидно

А когда ты пишешь что 90% выпускников школ не умеют подставлять значения в формулу — тоже?

S>>какие-какие ответы? Я что их зазубривать должен? Было бы в них что ценного...


I>на мой взгляд ты пишешь ответы не читая. Потому я просто цитирую себя же что бы не тратить время.

Бугога. Цитируя себя ты опять таки зря тратишь время.
Re[20]: Императивное программирование
От: vdimas Россия  
Дата: 09.10.12 08:45
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

S>>>Внезапно оказывается, что ваши школьники уже умеют "составлять инструкции", хотя их этому никто не учит.

V>>Как это не учат, если даже решение квадратного уравнения даётся в школе как пошаговый алгоритм? К тому же, с ветвлением.
G>Да ну? Что там сначала надо вычислять b^2 или 4ac ?

Садись, два. Перед ветвлением надо обязательно вычислить дискриминант квадратного уравнения.


G>И где там ветвление? Ветвление предполагает выбор одной из альтернатив, а у квадратного уравнения может быть два корня.


Опять два. Корней либо два, либо один, либо ни одного (оно же два мнимых). Ветвление идет по значению дискриминанта.

G>Приведи этот алгоритм на каком-либо императивном языке.


Сам справишься


S>>>Зато "подставлять выражения в формулу" они у вас же не умеют, несмотря на то, что их этому учат с 5го по 11й класс.


V>>Хы, если ты про "раскрытие скобок", то это ровно противоположный навык, чем тот, который требуется для оперирования лямбда-исчислением. Заметь, ни в базовой, ни в прикладной математике (физике, химии), нигде не фигурируют имена искуственно-введенных промежуточных ф-ий. Даже если требуется дать ответ в аналитическом виде, то всегда требуется получить некое выражение непосредственно от входных параметров. То бишь, школьная программа скорее отучает от функциональной декомпозиции, чем наоборот.

G>Ты не путай вычисления методом подстановки и символьные преобразования. Вторые аццки сложны, первые тривиальны.
G>При обучении композиции функций как раз требуются сложные символьные выражения.

Дык, ты читать умеешь? Я и не путаю, это Синклер изволит путать ровно противоположные по характеру навыки. Я лишь показываю, в чём путаница.

Тут как-то правильно сказали, что ФП имеет простую формулировку. Я бы дал совсем простую: "программа на ФП — это комбинация отображений". Всё! Кто понимает эту фразу, тот понимает, что такое ФП. Но блин, для понимания такого уровня абстракций надо 10 лет отучиться в школе и еще потом задеть крылом ту часть математики, которая уже относится к вышке. Т.е. простота формулировки вовсе не значит простоту понимания.


V>>Цимус ситуации, кстате, даже в том, что любое решение, даже будь оно сугубо в формулах, можно разложить на шаги/этапы. Т.е. на некую последовательность рассуждения. То бишь процесс вычисления ф-ий во времени вполне естественнен для понимания. Это даже можно показывать наглядно через отладочную печать или в каких-нить современных пакетах моделирования.

G>Да, можно. Но при этом нужно иметь гарантии что результат от способа раскладывания не зависит, иначе происходит разрыв, который у многих вообще никогда потом не заживает.

Не нагоняй страху. Разрыв происходит тогда, когда необходимо понять, что факт работы программы во времени мешает пониманию ФП. Я ведь помню, как трудно детям на первых порах понять, что если приложили напряжение к одному концу длинного провода, то при замыкании ток возникнет на другом конце мгновенно. Дети даже с трудом понимают, почему нельзя писать на провод — ведь "вода" течет от ребенка, как же ток так быстро бегает против течения??? )))

Тут аналогично — убрать из размышлений фактор времени будет очень болезненно без некоторого навыка оперирования абстракциями. Не отмахивался еще никогда от детских "почемучек"? Вот тебе начало: "а почему вычисляется мгновенно, а кто его вычисляет, а почему можно пренебречь, а что будет, если вычислять не сразу..." и т.д. до бесконечности. Императив же автоматом даёт ответы на любые "почему" своей простотой механики, сопровождаемой наглядностью.

S>>>А я думаю, что проще учить программированию постепенно, а не начиная с самых противоестественных для обычного человека концепций.

V>>Эта твоя "противоестественность" надуманна как оправдание модному увлечению. А на деле оно приходит лишь с пониманием большого кол-ва вещей. Мыслить по-настоящему абстрактно человек умеет уже в достаточно зрелом возрасте. А чем меньше ребенку лет, тем больше рулит наглядность. Императив же нагляден по своей природе.
G>И что? Сравни формулу для вычисления корней и любую императивную запись его, посмотрим что нагляднее.

Формула для его вычисления ПОШАГОВАЯ. Только это и важно. Можно посмотреть результаты на каждом шаге. А в ФП не может быть никакой пошаговости кроме случая эмуляции ФП на императивном вычислителе. Ы-Ы-Ы.



V>>ФП потребует понимания рекурсии уже на 3-м уроке по программированию, в отличие от простого цикла на 20 GOTO 10... Уууупс!!! Вот и приплызд, бо рекурсию многие студенты понимают дай бог спустя несколько месяцев начала обучения программированию. Что тут требовать от школьников?

G>Рекурсия элементарна если использовать банальную подстановку. В 100500 раз легче goto.

Враки. Я говорю, то, что видел. Рекурсию многие понимали дай бог к концу первого семестра. А императивный цикл дается на 2-3-й лекции и понимается без проблем, даже девочками...

G>Более того многие вещи в математике рекурсивны по природе. Те же факториалы или числа Фибоначчи.


Они не рекурсивны, а итеративны. К тому же по вышке одновременно читают ряды, так что пошаговость-итеративность вычислений для получения X[i] = F(X[i-1]) — легко воспринимаемое императивное действо.
Re[86]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 08:54
Оценка:
Здравствуйте, samius, Вы писали:

I>>Нет, не правильно. Гуру ФП который не понимает map — противоречение. Отсюда ясно, ты сам не понимаешь свой собственный вопрос.

S>Противоречие чему? Тебе не пришло в голову что как "гуру" себя могут позиционировать соискатели?

Это ты уже задним числом уточняешь, не годится.

I>>Когда я предлагаю давать ФП в третьем классе это сарказм. Я думал это очевидно

S>А когда ты пишешь что 90% выпускников школ не умеют подставлять значения в формулу — тоже?

А это правда, потому что просто чудовищная часть ошибок в вычислениях это неправильная подстановка.

I>>на мой взгляд ты пишешь ответы не читая. Потому я просто цитирую себя же что бы не тратить время.

S>Бугога. Цитируя себя ты опять таки зря тратишь время.

Да, лучше будет просто тебя игнорировать, экономия будет куда больше.
Re[87]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 09.10.12 09:25
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


S>>Противоречие чему? Тебе не пришло в голову что как "гуру" себя могут позиционировать соискатели?


I>Это ты уже задним числом уточняешь, не годится.

Ну точно, ты же у нас гуру собеседований, как так к тебе ни разу не приходили самопозиционирующиеся гуру? Задним числом тебе приходится уточнять такие банальности

I>>>Когда я предлагаю давать ФП в третьем классе это сарказм. Я думал это очевидно

S>>А когда ты пишешь что 90% выпускников школ не умеют подставлять значения в формулу — тоже?

I>А это правда, потому что просто чудовищная часть ошибок в вычислениях это неправильная подстановка.

Это может быть правдой лишь для выпускников со справкой вместо аттестата. Твоя чудовищная часть ошибок в вычислениях просто приведет к тому что средний балл по естественным наукам будет не выше двух с минусом.

I>Да, лучше будет просто тебя игнорировать, экономия будет куда больше.

Все обещаешь...
Re[88]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 09:45
Оценка:
Здравствуйте, samius, Вы писали:

S>>>Противоречие чему? Тебе не пришло в голову что как "гуру" себя могут позиционировать соискатели?


I>>Это ты уже задним числом уточняешь, не годится.

S>Ну точно, ты же у нас гуру собеседований, как так к тебе ни разу не приходили самопозиционирующиеся гуру? Задним числом тебе приходится уточнять такие банальности

"самопозиционирующийся гуру" Разбирайся в своей терминологии в одиночку, мне неинтересно продираться черз твои термины.

I>>А это правда, потому что просто чудовищная часть ошибок в вычислениях это неправильная подстановка.

S>Это может быть правдой лишь для выпускников со справкой вместо аттестата. Твоя чудовищная часть ошибок в вычислениях просто приведет к тому что средний балл по естественным наукам будет не выше двух с минусом.

Представь себе, примерно 99% выпускников делает ошибки в вычислениях. Чтото мне кажется и в россии точно так же.

I>>Да, лучше будет просто тебя игнорировать, экономия будет куда больше.

S>Все обещаешь...

Здесь нет ни одного обещания, а просто указно мое отношение если рассматривать исключительно с т.з. экономии времени.
Re[75]: Императивное программирование
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.10.12 10:55
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ну вот и дай рекурсивные структуры данных третьеклассникам, посмотри на результат.

Опять начинается этот бред про обучение третьеклассников программированию?
I>Мне кажется ты путаешь две вещи — изучение некоторой теории и степень освоения оной.
I>Третьеклассник не умеет подстановки, вобще говоря, это появляется в 4-5 классе в зависимости от программы когда появляются уравнения и простейшие формулы.
Ну вот видите, как здорово. Раз "это" появляется в 4-5 классе, то к 11 уже можно смело рассчитывать на получение результата из N операций в уме.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[89]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 09.10.12 11:40
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


I>"самопозиционирующийся гуру" Разбирайся в своей терминологии в одиночку, мне неинтересно продираться черз твои термины.

Зато смешно как!

S>>Это может быть правдой лишь для выпускников со справкой вместо аттестата. Твоя чудовищная часть ошибок в вычислениях просто приведет к тому что средний балл по естественным наукам будет не выше двух с минусом.


I>Представь себе, примерно 99% выпускников делает ошибки в вычислениях. Чтото мне кажется и в россии точно так же.

Прежде всего "в России" с большой буквы попрошу...
Во вторых, ошибки делают все, но в России их делают не так часто, что бы в 90% можно было сказать что не умеют юзать подстановку. Т.е. какой-то процент выпускников школ (>>10%, но не будут утверждать что близко к 100%) обладают реальными навыками, сдают выпускные/вступительные экзамены самостоятельно, иногда даже досрочно, т.е. не в выпускных классах.
А в мои годы с проблемами в навыках подстановки даже шанс перевестись в очередной класс был ничтожен, т.к. это автоматом бы влекло непроходимость в алгебре/геометрии, физике, химии.

I>>>Да, лучше будет просто тебя игнорировать, экономия будет куда больше.

S>>Все обещаешь...

I>Здесь нет ни одного обещания, а просто указно мое отношение если рассматривать исключительно с т.з. экономии времени.

ок, учту.
Re[90]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 13:32
Оценка:
Здравствуйте, samius, Вы писали:

S>Во вторых, ошибки делают все, но в России их делают не так часто, что бы в 90% можно было сказать что не умеют юзать подстановку. Т.е. какой-то процент выпускников школ (>>10%, но не будут утверждать что близко к 100%) обладают реальными навыками, сдают выпускные/вступительные экзамены самостоятельно, иногда даже досрочно, т.е. не в выпускных классах.

S>А в мои годы с проблемами в навыках подстановки даже шанс перевестись в очередной класс был ничтожен, т.к. это автоматом бы влекло непроходимость в алгебре/геометрии, физике, химии.

Вот если бы скажем, у вас в россии 100% учащихся набирали по ЕГЭ в математике 100% балл...
Чтото мне подсказывает, что 30% набирает большинство, а 100% набирают тоьлко единицы.
Как думаешь, какие причины ?
Re[76]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 13:33
Оценка:
Здравствуйте, Sinclair, Вы писали:

I>>Ну вот и дай рекурсивные структуры данных третьеклассникам, посмотри на результат.

S>Опять начинается этот бред про обучение третьеклассников программированию?

Бред намного раньше, вот здесь : "все это укладывается в банальную модель подстановки, которую может понять третьеклассник"

I>>Мне кажется ты путаешь две вещи — изучение некоторой теории и степень освоения оной.

I>>Третьеклассник не умеет подстановки, вобще говоря, это появляется в 4-5 классе в зависимости от программы когда появляются уравнения и простейшие формулы.
S>Ну вот видите, как здорово. Раз "это" появляется в 4-5 классе, то к 11 уже можно смело рассчитывать на получение результата из N операций в уме.

Правильно, отсюда понятно что "модель подстановки, которую может понять третьеклассник" есть бред.
Re[91]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 09.10.12 14:34
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


S>>А в мои годы с проблемами в навыках подстановки даже шанс перевестись в очередной класс был ничтожен, т.к. это автоматом бы влекло непроходимость в алгебре/геометрии, физике, химии.


I>Вот если бы скажем, у вас в россии 100% учащихся набирали по ЕГЭ в математике 100% балл...

Второй раз Россию с маленькой буквы списываю на умышленное намерение оскорбить. Можешь впредь рассчитывать на адекватные намерения лично к тебе, но не к твоим согражданам.
I>Чтото мне подсказывает, что 30% набирает большинство, а 100% набирают тоьлко единицы.
I>Как думаешь, какие причины ?
Причины всякие. Но не та что 90% выпускников не умеют делать подстановку. Если бы ЕГЭ заключался лишь в тестировании подстановки, то 100 баллов брали бы процентов 70-80 выпускников (навскидку) без специальной подготовки.
Re[92]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 09.10.12 16:54
Оценка:
Здравствуйте, samius, Вы писали:

I>>Чтото мне подсказывает, что 30% набирает большинство, а 100% набирают тоьлко единицы.

I>>Как думаешь, какие причины ?
S>Причины всякие. Но не та что 90% выпускников не умеют делать подстановку. Если бы ЕГЭ заключался лишь в тестировании подстановки, то 100 баллов брали бы процентов 70-80 выпускников (навскидку) без специальной подготовки.

Разумеется. При случа проверь как люди решают задачи. Я вот наверное половине потока в свое время решал электротехнику. Не потому, что там сложно. Просто у людей есть проблемы с простейшими действиями навроде подстановок. Вроде ход решения правильный, а результата нет. В школе это прокатывает, скажем вместо 8 поставят 6 если ошибки не сильно грубые будут. А вот в электротехнике надо получить ответ с точностью до второго знака после запятой и это резко все меняет.
Re[93]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 10.10.12 06:57
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


I>Разумеется. При случа проверь как люди решают задачи. Я вот наверное половине потока в свое время решал электротехнику. Не потому, что там сложно. Просто у людей есть проблемы с простейшими действиями навроде подстановок. Вроде ход решения правильный, а результата нет. В школе это прокатывает, скажем вместо 8 поставят 6 если ошибки не сильно грубые будут. А вот в электротехнике надо получить ответ с точностью до второго знака после запятой и это резко все меняет.


Очень интересную выборку ты мне предложил. То детки, которые закончили школу более-менее прилично, поступили в вузы, где решали отнюдь не электротехнику. А та часть сливок, что решала с тобой электротехнику — как минимум половина из них обходилась без тебя. Так что пример не в твою пользу.
Re[21]: Императивное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 10.10.12 10:03
Оценка: +1
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, gandjustas, Вы писали:


S>>>>Внезапно оказывается, что ваши школьники уже умеют "составлять инструкции", хотя их этому никто не учит.

V>>>Как это не учат, если даже решение квадратного уравнения даётся в школе как пошаговый алгоритм? К тому же, с ветвлением.
G>>Да ну? Что там сначала надо вычислять b^2 или 4ac ?

V>Садись, два. Перед ветвлением надо обязательно вычислить дискриминант квадратного уравнения.


Прочитай внимательно, я как раз спросил про то что в дискриминанте. Можешь указать последовательность вычислений?


G>>И где там ветвление? Ветвление предполагает выбор одной из альтернатив, а у квадратного уравнения может быть два корня.


V>Опять два. Корней либо два, либо один, либо ни одного (оно же два мнимых). Ветвление идет по значению дискриминанта.


Приведи этот алгоритм на каком-либо императивном языке.


V>Тут как-то правильно сказали, что ФП имеет простую формулировку. Я бы дал совсем простую: "программа на ФП — это комбинация отображений". Всё! Кто понимает эту фразу, тот понимает, что такое ФП. Но блин, для понимания такого уровня абстракций надо 10 лет отучиться в школе и еще потом задеть крылом ту часть математики, которая уже относится к вышке. Т.е. простота формулировки вовсе не значит простоту понимания.

Зачем понимание ФП? Композицию функций, рекурсию, ФВП можно объяснить очень быстро (несколько занятий). За счет простой модели вычислений.
Потом структуры данных, рекурсивные структуры данных и типовые алгоритмы.
Этого уже достаточно чтобы писать программы.

Для этого не нужно знать что "программа на ФП — это комбинация отображений".


V>>>Цимус ситуации, кстате, даже в том, что любое решение, даже будь оно сугубо в формулах, можно разложить на шаги/этапы. Т.е. на некую последовательность рассуждения. То бишь процесс вычисления ф-ий во времени вполне естественнен для понимания. Это даже можно показывать наглядно через отладочную печать или в каких-нить современных пакетах моделирования.

G>>Да, можно. Но при этом нужно иметь гарантии что результат от способа раскладывания не зависит, иначе происходит разрыв, который у многих вообще никогда потом не заживает.

V>Не нагоняй страху. Разрыв происходит тогда, когда необходимо понять, что факт работы программы во времени мешает пониманию ФП.

"Время" — последовательность состояний. Если следующее состояние программы является функцией предыдущих, то ничего не мешает, можно последовательность состояний явно выразить через последовательности.
А вот когда у тебя есть явное деструктивное изменение состояния, то тут появляется разрыв. У тебя он тоже есть.

Вообще "время" в программе не связано с реальным временем, оно связано с наблюдаемым состоянием программы.

V>Я ведь помню, как трудно детям на первых порах понять, что если приложили напряжение к одному концу длинного провода, то при замыкании ток возникнет на другом конце мгновенно. Дети даже с трудом понимают, почему нельзя писать на провод — ведь "вода" течет от ребенка, как же ток так быстро бегает против течения??? )))

Странные у тебя аналогии. Мы вообще-то не про детей говорим.

V>Тут аналогично — убрать из размышлений фактор времени будет очень болезненно без некоторого навыка оперирования абстракциями. Не отмахивался еще никогда от детских "почемучек"? Вот тебе начало: "а почему вычисляется мгновенно, а кто его вычисляет, а почему можно пренебречь, а что будет, если вычислять не сразу..." и т.д. до бесконечности. Императив же автоматом даёт ответы на любые "почему" своей простотой механики, сопровождаемой наглядностью.

А ты вообще пытался людям математику преподавать? Почему там никто не говорит про время? Большая часть ФП основана на чистой математике и не имеет отношения к конструкции конкретного вычислителя. Если ты сразу начинаешь с императивного вычислителя, то сталкиваешься со временем во всей красе.


S>>>>А я думаю, что проще учить программированию постепенно, а не начиная с самых противоестественных для обычного человека концепций.

V>>>Эта твоя "противоестественность" надуманна как оправдание модному увлечению. А на деле оно приходит лишь с пониманием большого кол-ва вещей. Мыслить по-настоящему абстрактно человек умеет уже в достаточно зрелом возрасте. А чем меньше ребенку лет, тем больше рулит наглядность. Императив же нагляден по своей природе.
G>>И что? Сравни формулу для вычисления корней и любую императивную запись его, посмотрим что нагляднее.

V>Формула для его вычисления ПОШАГОВАЯ. Только это и важно.

Это свойство самой формулы или того как ты эту формулу воспринимаешь?

V>Можно посмотреть результаты на каждом шаге.

Какие результаты?

V> А в ФП не может быть никакой пошаговости кроме случая эмуляции ФП на императивном вычислителе. Ы-Ы-Ы.

Странный вывод. Ни одна формула сама по себе пошаговость не задает, так что непонятно что ты хотел сказать.



V>>>ФП потребует понимания рекурсии уже на 3-м уроке по программированию, в отличие от простого цикла на 20 GOTO 10... Уууупс!!! Вот и приплызд, бо рекурсию многие студенты понимают дай бог спустя несколько месяцев начала обучения программированию. Что тут требовать от школьников?

G>>Рекурсия элементарна если использовать банальную подстановку. В 100500 раз легче goto.

V>Враки. Я говорю, то, что видел. Рекурсию многие понимали дай бог к концу первого семестра. А императивный цикл дается на 2-3-й лекции и понимается без проблем, даже девочками...

При таком подходе к обучению — естественно. Тебе как раз про другой подход говорят.
Если что в большинстве курсов не используется модель подстановки для начала обучения, сразу рассказывают про переменные, память итп, что значительно усложняет понимание банальной рекурсии.
Я имею опыта обучения побольше твоего и уверенно могу сказать что ты далеко не все знаешь.

G>>Более того многие вещи в математике рекурсивны по природе. Те же факториалы или числа Фибоначчи.


V>Они не рекурсивны, а итеративны.

Рекурсия — когда одинаковые символы встречаются в обоих частях выражений.

F(n) = F(n-1) + F(n-2)
Где тут итерация? Опиши последовательность действий для вычисления N-ого числа фибоначчи, докажи что она эквивалентна формуле.
Это крайне непростая задача.

V>К тому же по вышке одновременно читают ряды, так что пошаговость-итеративность вычислений для получения X[i] = F(X[i-1]) — легко воспринимаемое императивное действо.

Ну это ты самый простой случай описал. Лучше на примере размена монет напиши.
Re[81]: Императивное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 10.10.12 10:11
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


I>>>Чушь у тебя в голове, а это факты — в указаных областях императивный С++ рвет в хлам всех конкурентов, т.е. это основной и практически единсвтенный ЯП. Ну например если ты покажешь скажем ОС писаную не на с++... Ну, ты понял


G>>Ну не сливайся ты так. Ведь никто тебе не говорит что надо забыть C++ и писать на чем-то еще. Тебе ведь говорят что не надо на нем учить программировать, это вредно.


I>А я по твоему предлагаю С++ использовать для обучения ? Дай цитату.


Я не знаю что ты предлагаешь, но тему ты переводишь постоянно. Оставайся в контексте, а то ты на основании рассуждений о C++ делаешь выводы об обучении.

G>>Кстати обработка данных обычно декларативна. Самый массовый язык обработки данных — SQL — ни разу не императивен. Что ты имеешь ввиду под управлением ресурсами и вводом-выводом — непонятно.


I>Обычно императивный код даёт наилучший результат.

Ты представляешь объем и сложность императивного кода, который даст сравнимый с SQL результат?

I>SQL это массовый язык, только покрывает мизерную часть задач обработки данных.

У тебя есть статистика? Мне кажется что по объему кода для обработки данных SQL обошел на несколько кругов всех остальных. Узкоспециализированные решения на конкретных задачах работают быстрее SQL на этих же задачах, но на то эти средства и узкоспециализированные.

I>Ресурсы, ввод-вывод — самый простой пример это драйвера, ОС и тд.

Драйверам скорость не сильно нужна, ограничение по языкам там от низкоуровневости. Что ты имеешь ввиду под ОС — непонятно, ОС — неоднородная вещь. Вот есть оконный манагер для *nix на haskell.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.