Почему ФЯ трудны для императивщиков
От: Курилка Россия http://kirya.narod.ru/
Дата: 15.02.07 12:27
Оценка: 21 (4) +1
Хотел поделиться статьёй, где автор рассматривает (на примере Haskell), почему же путь "обычных" программеров в функциональное программирование несколько сложен. Ответ, наверное, довольно заметно пересекается с тем, что тут уже довольно много говорил VladD2: функциональщики, как правило, довольно сильно отходят от тех материй, которые занимают умы императивщиков, и занимаются всякими монадами и прочими "хитрыми" вещами. В результате чего для какого-нибудь сишника учебник по хаскелю или мл получается очень сложным, т.к. строится с точки зрения человека, мыслящего уже категориями хаскеля или мл.
Re: Почему ФЯ трудны для императивщиков
От: FDSC Россия consp11.github.io блог
Дата: 15.02.07 16:16
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Хотел поделиться статьёй, где автор рассматривает (на примере Haskell), почему же путь "обычных" программеров в функциональное программирование несколько сложен. Ответ, наверное, довольно заметно пересекается с тем, что тут уже довольно много говорил VladD2: функциональщики, как правило, довольно сильно отходят от тех материй, которые занимают умы императивщиков, и занимаются всякими монадами и прочими "хитрыми" вещами. В результате чего для какого-нибудь сишника учебник по хаскелю или мл получается очень сложным, т.к. строится с точки зрения человека, мыслящего уже категориями хаскеля или мл.


Да нет, просто они не рассказывают некоторых вещей или рассказывают их непоследовательно, или плохо подают материал (например, только на примерах)
Re[2]: Почему ФЯ трудны для императивщиков
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 15.02.07 16:24
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Да нет, просто они не рассказывают некоторых вещей или рассказывают их непоследовательно, или плохо подают материал (например, только на примерах)


Это интересная для меня тема, прошу не воспринимать как наезд.

Можно чуть больше конкретики? Каких именно вещей не рассказывают (т.е. может быть они что то должны рассказать перед чем то, а они этого не делают)? Плохо подают материал — как надо хорошо?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Почему ФЯ трудны для императивщиков
От: Курилка Россия http://kirya.narod.ru/
Дата: 15.02.07 16:46
Оценка:
Здравствуйте, lomeo, Вы писали:

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


FDS>>Да нет, просто они не рассказывают некоторых вещей или рассказывают их непоследовательно, или плохо подают материал (например, только на примерах)


L>Это интересная для меня тема, прошу не воспринимать как наезд.


L>Можно чуть больше конкретики? Каких именно вещей не рассказывают (т.е. может быть они что то должны рассказать перед чем то, а они этого не делают)? Плохо подают материал — как надо хорошо?


Ммм, ты статью смотрел?
Хотя бы IO на 36-й странице учебника как пример.
Re[3]: Почему ФЯ трудны для императивщиков
От: FDSC Россия consp11.github.io блог
Дата: 15.02.07 17:37
Оценка: 22 (2) +1
Здравствуйте, lomeo, Вы писали:

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


FDS>>Да нет, просто они не рассказывают некоторых вещей или рассказывают их непоследовательно, или плохо подают материал (например, только на примерах)


L>Это интересная для меня тема, прошу не воспринимать как наезд.


L>Можно чуть больше конкретики? Каких именно вещей не рассказывают (т.е. может быть они что то должны рассказать перед чем то, а они этого не делают)? Плохо подают материал — как надо хорошо?


Не, уже забыл конкретику — я с лета ничем ФП-шным не занимался. А тогда даже на SICP постоянно ругался, потому что не так рассказывали, как надо. Да и это всё равно сложно объяснить, я, например, не видел ни одного хорошего учебника по C++, ну вот не видел... , никто не даёт общего описания что и как надо делать. В ФП то же можно встретить какие-то частности, но общий подход к конструированию то же не излагается. Тот же SICP вообще жутко размытая книга, ну, правда, она совсем для начинающих, но читать её очень трудно из-за этой размытости. Примеры там слишком лёгкие: я сам некоторые смог написать на Scheme даже более сложные (но по тому же направлению) не заглядывая в учебник, а вот когда задумался над чем-то своим, оказалось, что просто не могу придумать как это нормально оформить. Вообще, очень мало рассказано именно, так сказать, не про сами стандартные приёмы, а про способы их применения.
В документации по Nemerle я вообще не способен разобраться. Я так и не понял, какие возможности есть у макросредств этого языка и где это описано. Хотя текста, опять же, много. Ну и т.п.

Я вообще не видел литературы, где нормально описываются значение и применение терминов типа "сопоставление с образцом" (SICP с метаязыковыми средствами не подойдёт) или, скажем, монад. Может кините ссылочку?


Короче говоря, дело даже не в том, что кто-то что-то плохо понимает. Просто книги так написаны, что по ним нельзя научится программировать и нужно всё делать с нуля, как это было и для процедурного программирования. Причём дело не в мышлении, а именно в понимании и в правильном применении средств языка: т.е. я могу спокойно что-то "замыслить" жутко функциональное, но это не значит, что я смогу это правильно перенести в синтаксис языка. Думаю, у всех по началу с процедурным программированием тоже возникали трудности, хотя мышление у человека такое, что можешь хоть прямо сесть и писать процедурами прямо из головы.
Re[4]: Почему ФЯ трудны для императивщиков
От: FDSC Россия consp11.github.io блог
Дата: 15.02.07 18:06
Оценка:
Здравствуйте, FDSC, Вы писали:

FDS>Короче говоря, дело даже не в том, что кто-то что-то плохо понимает. Просто книги так написаны, что по ним нельзя научится программировать и нужно всё делать с нуля, как это было и для процедурного программирования. Причём дело не в мышлении, а именно в понимании и в правильном применении средств языка: т.е. я могу спокойно что-то "замыслить" жутко функциональное, но это не значит, что я смогу это правильно перенести в синтаксис языка. Думаю, у всех по началу с процедурным программированием тоже возникали трудности, хотя мышление у человека такое, что можешь хоть прямо сесть и писать процедурами прямо из головы.



P.S. Т.е. я имею ввиду, что в приведённой ссылке всё сказано близко к истине, только вот Курилка её исказил до невозможности.
Дело в том, что никто последовательно не учит:
1. Абстракциям, применяемым в ФП
2. Применениям этих абстракций в РЕАЛЬНОМ коде

Люди на подобие VladD2 могут схватить что-то на лету, я, например, — нет. Мне нужно долго и упорно читать или вкладывать много сил в изучение соотв. языков — при том, что непонятно, даст это результат или нет. Поэтому в промышленном программировании ФП и не применяется: там в основном обычные люди сидят и не их дело выдумывать заново за разработчиков как же там эти монады использовать...
Re[4]: Почему ФЯ трудны для императивщиков
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 15.02.07 18:42
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Ммм, ты статью смотрел?

К>Хотя бы IO на 36-й странице учебника как пример.

Да, смотрел, мне интересно мнение рсдн-щиков
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Почему ФЯ трудны для императивщиков
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 15.02.07 18:52
Оценка:
Здравствуйте, FDSC, Вы писали:

Более-менее понятно, спасибо за ответ.
Нужна именно связь понятий с реальными применениями, так? Где применять это, а где то..
А про очередность изложения есть мысли?

FDS>Я вообще не видел литературы, где нормально описываются значение и применение терминов типа "сопоставление с образцом" (SICP с метаязыковыми средствами не подойдёт) или, скажем, монад. Может кините ссылочку?


Ну, я как и все учился на многих источниках. Их тут приводили и вместе и слитно, увы, универсального учебника пока нет
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Почему ФЯ трудны для императивщиков
От: Курилка Россия http://kirya.narod.ru/
Дата: 16.02.07 07:38
Оценка: 1 (1) +4 -1
Здравствуйте, FDSC, Вы писали:

FDS>Короче говоря, дело даже не в том, что кто-то что-то плохо понимает. Просто книги так написаны, что по ним нельзя научится программировать и нужно всё делать с нуля, как это было и для процедурного программирования. Причём дело не в мышлении, а именно в понимании и в правильном применении средств языка: т.е. я могу спокойно что-то "замыслить" жутко функциональное, но это не значит, что я смогу это правильно перенести в синтаксис языка. Думаю, у всех по началу с процедурным программированием тоже возникали трудности, хотя мышление у человека такое, что можешь хоть прямо сесть и писать процедурами прямо из головы.


Согласно каким фактам ты утверждаешь выделенное?
То, что 99% программных решений сделаны императивно, не говорит о том, что само мышление человека обязательно императивно, имхо.
Re[5]: Почему ФЯ трудны для императивщиков
От: Курилка Россия http://kirya.narod.ru/
Дата: 16.02.07 07:39
Оценка:
Здравствуйте, FDSC, Вы писали:


FDS>P.S. Т.е. я имею ввиду, что в приведённой ссылке всё сказано близко к истине, только вот Курилка её исказил до невозможности.

FDS>Дело в том, что никто последовательно не учит:
FDS>1. Абстракциям, применяемым в ФП
FDS>2. Применениям этих абстракций в РЕАЛЬНОМ коде

Можешь конкретно показать, что я исказил?
Re[5]: Почему ФЯ трудны для императивщиков
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 16.02.07 08:39
Оценка: +3
Курилка,

FDS>>...Думаю, у всех по началу с процедурным программированием тоже возникали трудности, хотя мышление у человека такое, что можешь хоть прямо сесть и писать процедурами прямо из головы.


К>Согласно каким фактам ты утверждаешь выделенное?

К>То, что 99% программных решений сделаны императивно, не говорит о том, что само мышление человека обязательно императивно, имхо.

Мышление человека вообще может быть очень гибким и привыкать к использованию самых разнообразных абстракций. Для примера можно привести математиков (скажем, в таких областях как топология и алгебра), которые с лёгкостью ворочают абстракциями, на изучение которых уходят годы.
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[6]: Почему ФЯ трудны для императивщиков
От: BulatZiganshin  
Дата: 16.02.07 08:42
Оценка:
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

LCR>Курилка,


FDS>>>...Думаю, у всех по началу с процедурным программированием тоже возникали трудности, хотя мышление у человека такое, что можешь хоть прямо сесть и писать процедурами прямо из головы.


К>>Согласно каким фактам ты утверждаешь выделенное?

К>>То, что 99% программных решений сделаны императивно, не говорит о том, что само мышление человека обязательно императивно, имхо.

LCR>Мышление человека вообще может быть очень гибким и привыкать к использованию самых разнообразных абстракций. Для примера можно привести математиков (скажем, в таких областях как топология и алгебра), которые с лёгкостью ворочают абстракциями, на изучение которых уходят годы.


немного информации с полей псизологии: всё, чем мы оперируем — абстрактные понятия, когда-то нами освоенные, включая и сам язык. такой простой пример — новорожденный не способен выделить в воспринимаемой им картинке даже отдельные предметы (!)
Люди, я люблю вас! Будьте бдительны!!!
Re[7]: Почему ФЯ трудны для императивщиков
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 16.02.07 09:17
Оценка:
Bulat,

BZ>немного информации с полей псизологии: всё, чем мы оперируем — абстрактные понятия, когда-то нами освоенные, включая и сам язык. такой простой пример — новорожденный не способен выделить в воспринимаемой им картинке даже отдельные предметы (!)


Любопытно.

Ещё добавлю от себя, что есть существенная разница между абстрактным образом и синтетическими абстракциями. Чтобы построить первый, нужен вещественный опыт, а чтобы второй — нужно абстрактное мышление и воображение.

Попробуй ребёнку объяснить, что такое масса? Понятия "легче — тяжелее" схватываются легко, а вот понятие "5 кг" — никак. То есть вообще. Хоть башкой об стену бейся, но объяснить невозможно. (Аналогии с линейками и чёрточками на весах не канают — это замечание специально для скептиков).
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[7]: Почему ФЯ трудны для императивщиков
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 16.02.07 09:25
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>новорожденный не способен выделить в воспринимаемой им картинке даже отдельные предметы (!)


а как это выяснили?
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[8]: Почему ФЯ трудны для императивщиков
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 16.02.07 09:48
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

BZ>>новорожденный не способен выделить в воспринимаемой им картинке даже отдельные предметы (!)


ANS>а как это выяснили?


Меня всегда восхищают подобные вопросы. Напоминают малыша Стругацких: "Как люди узнали, что думают головой?".
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Почему ФЯ трудны для императивщиков
От: BulatZiganshin  
Дата: 16.02.07 09:51
Оценка: 25 (5)
BZ>>новорожденный не способен выделить в воспринимаемой им картинке даже отдельные предметы (!)

ANS>а как это выяснили?


понятия не имею — получил в виде готового утвержения. имхо, об этом свидетелсьвтует то, что младенец не фокусирует свой взгляд на приближающихся к нему объектах

зато могу сослаться на "Стратегии гениев" Дилтса: создали машинку для ориентации в пространстве слепых, действует с помощтю радиолокации наподобие летучей мыши. отражённый от окружающих объектов инфразвук преобразуется в слышимые звуки. маленькие дети — года два-три наверно — быстро эту штуку освоили и научились с её помощью быстро бегать по лестницам, к примеру. чем старше детям её давали, тем сложнее им было научиться ориентироваться в пространстве по звукам, а не изображениям, перестроить своё мышление

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

третий — у человека нарушен вестибулярный аппарат. ему делают специальные очки с "уровнем". через некоторое время он настолько првиыкает по этому уровнб ориентироваться, что спокойно ходит прямо — автоматчисеки, интуитивно, без всяких сознатедльбных усилий

ну а то, что иностранные языки лучше учить в дошкольном возрасте — уж все знают

вот ещё — Милтон Эриксон, ставший впоследствии одним из известнейших в мире психологов, в 19 лет переболел полиомиелитм и не мог даже встать с кровати. он наблюдал за своей годовалой сестрёнкой — смотрел, как она училась ходить. повторил то же самое и научился — повторно — ходить сам. он и впоследствии в своей работе уконцентрирвоался на установлении контакта с подсознанием человека и обучении именно подсознания напрямую. проще говоря, гипнозе
Люди, я люблю вас! Будьте бдительны!!!
Re[8]: Почему ФЯ трудны для императивщиков
От: BulatZiganshin  
Дата: 16.02.07 09:56
Оценка:
LCR>Попробуй ребёнку объяснить, что такое масса? Понятия "легче — тяжелее" схватываются легко, а вот понятие "5 кг" — никак. То есть вообще. Хоть башкой об стену бейся, но объяснить невозможно. (Аналогии с линейками и чёрточками на весах не канают — это замечание специально для скептиков).

опыт — критерий истины человек вообще имеет замечательные способности к обучению, жутко любознателен от природы — особеннго в дествком возрасте. более того, главный смысл детсва у людей и других высших позвоночных — именно обучение, перенятие опыта старших и практическое освоение жтих навыков. однако это обучение имеет две особенности — во-первых, учатся только тому, что полезно для выживания (это вызывает интерес, в отличие от абстрактных математических понятий), во-вторыхх, учатся на конкретном праткичексом опыте, подсощнательно обобщая и систематизируя его. животные не могли воспринять из природы напрямую какие-то абстрактные понтия типа закона притяжения, они могли только сделать выод о нём исходя из собственного опыта падений

человечское обучение — искуственная система, основанная на искусственном языке, системе понятий, логике, позволяющая передавать знания в другой форме. и её неестественность делает эту систему плохо воспринимаемой большинством нормальных людей
Люди, я люблю вас! Будьте бдительны!!!
Re[9]: Почему ФЯ трудны для императивщиков
От: BulatZiganshin  
Дата: 16.02.07 09:59
Оценка: :)
BZ>>>новорожденный не способен выделить в воспринимаемой им картинке даже отдельные предметы (!)

ANS>>а как это выяснили?


L>Меня всегда восхищают подобные вопросы. Напоминают малыша Стругацких: "Как люди узнали, что думают головой?".


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

ps: философия минус программирование
Люди, я люблю вас! Будьте бдительны!!!
Re[10]: Почему ФЯ трудны для императивщиков
От: BulatZiganshin  
Дата: 16.02.07 10:23
Оценка:
BZ>гм. а откуда ты знаешь, что у других людей есть такое же сознание, как у тебя? точнее, почему ты веришь в это?

вот только не ставьте мне смайлики, а попробуйте ответить. вопрос весьма серьёзный. для философов это — основной вопрос философии. для психологов это вопрос о происхождении сознания. когда оно появилось, каким образом, что это вообще такое?
Люди, я люблю вас! Будьте бдительны!!!
Re[9]: Почему ФЯ трудны для императивщиков
От: Курилка Россия http://kirya.narod.ru/
Дата: 16.02.07 10:39
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>человечское обучение — искуственная система, основанная на искусственном языке, системе понятий, логике, позволяющая передавать знания в другой форме. и её неестественность делает эту систему плохо воспринимаемой большинством нормальных людей


А какая система тогда будет естественной?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.