Re[32]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.02.09 03:31
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>
K>System.Console.WriteLine("--> {0} duplicate words", box(nDups))
K>


K>В f# есть автобоксинг?


Еще интересно поглядеть на поддержку неявных приведений типов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.02.09 05:08
Оценка: +1
Здравствуйте, MasterZiv, Вы писали:

MZ>VladD2 пишет:


>> Дык разница между синтаксисом и семантикой С и Паскаля очень

>> незначительная.

MZ>Влад, ты ГЛУБОКО неправ. Паскаль — очень строго типизированный язык.


Это без разницы. Тем не мене языки близки. Их можно изучать составив отображение фич одного в фичи другого.
Скобки меняем на begin/end, function/procedure на синтаксис функции в С и так далее...

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

MZ>С — модульный язык, Паскаль — нет.


Гы-гы. Реальные реализации Паскаля (Турбо Паскаль) были реально модульными. А С как раз пользовался убогим инклюдом. Но это опять же не имеет никакого отношения к восприятию языка.

MZ>Синтаксис — в общем пофигу, но в паскале строго всё разложено

MZ>по секциям, в С — где что напишешь,то и будет.

Синтаксис и семантика — это то что делают язык языком. А мелкие детали вроде модульности... это и есть детали которые не вызывают проблем с пониманием.

Любой кто изучал С после Паскаля и ОКамл после С поймет о чем я говорю.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.02.09 05:15
Оценка:
Здравствуйте, FR, Вы писали:

FR>Угу приличная, но база того же Ocaml'а (без объектов) по сути простой не сложнее паскаля язык.


Причем тут сложность? База OCaml — это ML. И он не то что бы сложный. Он совсем другой! Чтобы понять его нужно не просто составить мысленное отображение синтаксических элементов одного языка в синтаксические элементы другого. Для понимания этой базы прийдется менять сознание. По другому смотреть на вещи.

VD>>Мои наблюдения за людьми которые изучали F# и Немерле показали, что Немерле ими воспринимался намного проще и быстрее. Более того после знакомства с Немерле F# воспринимался уже намного проще, так как разница действительно оказывалась же почти в одном синтаксисе.


FR>Угу и потом эти люди пишут страшный код на Немерли функциональщины в котором свершенно не наблюдается.


Откуда ты это взял? У меня как раз обратная статистика.

FR>Здравствуй Влад, я уже давно пишу небольшие свои проектики на Ocaml'е, единственное не использую объекты за ненадобностью. Я легко могу писать на Хаскеле как на фортране, тьфу как на Ocaml'е но смысла в этом не вижу.


Тогда странно, что ты находишь огромную разницу между ним и Хаскелем.

VD>>Так как языки фактически имеют общую базу. Отличие Хаскеля в незначительном синтаксическом различии, классах типов вместо привычного ООП и в ленивости. Это не так много, чтобы хорошо понимать дин язык и совсем плавать в другом.


FR>Угу с тобой все ясно, блабишь


Ну, типа сделал выпад. Молодец.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.02.09 05:18
Оценка:
Здравствуйте, thesz, Вы писали:

VD>>Сдается мне, что ОКамл ты знаешь так же как и Хаскель. Так как языки фактически имеют общую базу. Отличие Хаскеля в незначительном синтаксическом различии, классах типов вместо привычного ООП и в ленивости. Это не так много, чтобы хорошо понимать дин язык и совсем плавать в другом.


T>We all yet to see your article entitled like "Хаскель, как шаг к теории типов", ага.


T>Уж коли ты так хорошо во всём разобрался.


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

Ты хочешь сказать, что зная Хаскель и различие его с ОКамлом по синтаксису я не смогу читать код который не использует ООП ОКамла (который и правда сильно отличается от хаскелевского подхода)?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.02.09 05:19
Оценка:
Здравствуйте, thesz, Вы писали:

VD>>Сдается мне, что ОКамл ты знаешь так же как и Хаскель. Так как языки фактически имеют общую базу. Отличие Хаскеля в незначительном синтаксическом различии, классах типов вместо привычного ООП и в ленивости. Это не так много, чтобы хорошо понимать дин язык и совсем плавать в другом.


T>We all yet to see your article entitled like "Хаскель, как шаг к теории типов", ага.


T>Уж коли ты так хорошо во всём разобрался.


Кстати, я не понял, чего ты радуешься? Человек высказал мысль о том, что Хаскель значительно сложнее ОКамла и что последний ему понятен, а первый нет. Ты по идее с ним должен спорить, а не со мной.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.02.09 05:32
Оценка:
Здравствуйте, lomeo, Вы писали:

VD>>Не понял твоего посыла про синтаксис, но синтаксис очень даже причем. Когда людям не приходится ломать привычки в области синтаксиса и семантики базовой части языка (или приходится, но не много), то им намного проще освоить сам ФП, так как для них ФП становится всего лишь новыми фичами которые нужно "доучить". В случае скажем Хаскля или ОКамла человек вынужден сильно и одномоментно ломать свое сознание.


L>Возможно, но ломка привычки в отношении синтаксиса — копейки.


Отнюдь не копейки. Есть масса людей которые программировали на Дельфи в 90-тые. Сейчас Дельфи не в фаворе. Разумно было бы перейти на C#, ведь язык очень близок по духу. Разница только в синтаксисе. Однако многие так и остаются на клонах Дельфи, так как учить эту разницу и нюансы сложно, а работать надо сейчас.

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

Собственно это факт. Не понимаю почему многие очень хотят его оспорить.


VD>>Кстати, то что ты знал Пролог могло сильно упростить тебе изучение ФЯ, так как Пролог уже помог тебе переломить сознание. Как минимум понять паттерн-матчинг в Хаскле не проблема если ты знаком с Прологом.


L>Думал об этом. Паттерн-матчинг не такая уж сложная часть — её понимают практически все, кому я его объяснял. Ещё не встречал проблемы с пониманием, один даже сходу предложил реализацию этого подхода.


А кому не объяснял?
И что тогда не понимают?

Или все понимают, но не могут прочесть программу на языке?

L>Ну, немного не так было, но смысл верный, да. Но! По своему опыту знаю, что я многого добился, если у LaPerouse зародилась хоть тень сомнения в своей правоте. А мне кажется, что так и есть.


Согласен, что это тоже достижение. Но все же этого не достаточно. К тому же убеждать каждого по отдельности задача бесполезная.

VD>>Why FP matters я пробовал читать когда пытался въехать в ФП. Результат был — скепсис и непонимание.


L>Из-за приведённых примеров? Или сам тезис о разбивании сложности с помощью ФВП?


Не помню подробностей. Помню ощущения.

Что же до декомпозиции с помощью ФВП, то я и сейчас считаю, что этот подход хорошо работает только на микр-оуровне. На макро-уровне — уровне дизайна приложения — ООП мне кажется более подходящим средством (под ООП тут прокатят фичи вроде акторов Эрланга и классы типов Хаскеля).

С удовольствием послушал бы (в отдельной теме) аргументы которые меня разубедили бы. Но пока меня просто пытаются "закричать", а по делу никто так ничего и не сказал.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: "LINQ как шаг к ФП". Стиль изложения.
От: FR  
Дата: 09.02.09 05:53
Оценка: +1 -1
Здравствуйте, VladD2, Вы писали:

VD>Причем тут сложность? База OCaml — это ML. И он не то что бы сложный. Он совсем другой! Чтобы понять его нужно не просто составить мысленное отображение синтаксических элементов одного языка в синтаксические элементы другого. Для понимания этой базы прийдется менять сознание. По другому смотреть на вещи.


Сложность при том что синтаксис можно быстро и легко изучить. Конечно некторый психологический тормоз может помешать. Но ML образные гораздо ближе к Си/паскалю чем например lisp, forth или smalltalk.

VD>>>Мои наблюдения за людьми которые изучали F# и Немерле показали, что Немерле ими воспринимался намного проще и быстрее. Более того после знакомства с Немерле F# воспринимался уже намного проще, так как разница действительно оказывалась же почти в одном синтаксисе.


FR>>Угу и потом эти люди пишут страшный код на Немерли функциональщины в котором свершенно не наблюдается.


VD>Откуда ты это взял? У меня как раз обратная статистика.


Да прямо с RSDN помню год или два назад тут были перлы.

FR>>Здравствуй Влад, я уже давно пишу небольшие свои проектики на Ocaml'е, единственное не использую объекты за ненадобностью. Я легко могу писать на Хаскеле как на фортране, тьфу как на Ocaml'е но смысла в этом не вижу.


VD>Тогда странно, что ты находишь огромную разницу между ним и Хаскелем.


Если копнуть глубже то не странно. Реально общего между хаскелем и окамлом только похожий синтаксис,
в остальном различий по моему не меньше к примеру чем между тем же хаскелем и C++.
Ленивость уже требует совсем по другому думать и решать задачи.
Плюс жесткое разделение чистых и грязных функций тоже полностью меняет способы построения
программ.

FR>>Угу с тобой все ясно, блабишь


VD>Ну, типа сделал выпад. Молодец.


Да не серъезно, Влад ты просто не разбирался в Хаскеле, так мельком проглядел, да с такой точки
окамл и хаскель похожи, а чуть глубже и оказывается что это акула и дельфин.
Re[21]: "LINQ как шаг к ФП". Стиль изложения.
От: FR  
Дата: 09.02.09 05:57
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Кстати, я не понял, чего ты радуешься? Человек высказал мысль о том, что Хаскель значительно сложнее ОКамла и что последний ему понятен, а первый нет. Ты по идее с ним должен спорить, а не со мной.


Почему, хаскель мне вполне понятен в теории, вот на практике он у меня не идет. Может как раз психологический тормоз
Re[20]: "LINQ как шаг к ФП". Стиль изложения.
От: Qbit86 Кипр
Дата: 09.02.09 07:45
Оценка: +1
Здравствуйте, MasterZiv, Вы писали:

MZ>С — модульный язык, Паскаль — нет.


Глаза у меня добрые, но рубашка — смирительная!
Re[19]: "LINQ как шаг к ФП". Стиль изложения.
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 09.02.09 08:12
Оценка:
Здравствуйте, VladD2, Вы писали:

L>>Возможно, но ломка привычки в отношении синтаксиса — копейки.


VD>Отнюдь не копейки. Есть масса людей которые программировали на Дельфи в 90-тые. Сейчас Дельфи не в фаворе. Разумно было бы перейти на C#, ведь язык очень близок по духу. Разница только в синтаксисе. Однако многие так и остаются на клонах Дельфи, так как учить эту разницу и нюансы сложно, а работать надо сейчас.


Да не в синтаксисе разница. Иначе бы они перешли очень быстро. Разница в тех самых нюансах
Либо мы с тобой очень по разному понимаем синтаксис.

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

VD>Собственно это факт. Не понимаю почему многие очень хотят его оспорить.

С этим я не спорю. Я говорю о том, что в этой сумме синтаксические различия не играют значительной роли.

L>>Думал об этом. Паттерн-матчинг не такая уж сложная часть — её понимают практически все, кому я его объяснял. Ещё не встречал проблемы с пониманием, один даже сходу предложил реализацию этого подхода.


VD>А кому не объяснял?


Не понял вопроса.

VD>И что тогда не понимают?


Да всё понимают, задают уточняющие вопросы, если что то не понимают, и врубаются. Вещь по сути несложная. Особенности (преимущества и недостатки) может сразу и не видны, но читать код с ПМ могут сразу.

VD>Или все понимают, но не могут прочесть программу на языке?


Могут-могут.

VD>Согласен, что это тоже достижение. Но все же этого не достаточно. К тому же убеждать каждого по отдельности задача бесполезная.


Так другие читают. Вот мы сейчас говорим, а за спиной стоят анонимусы
Re[21]: "LINQ как шаг к ФП". Стиль изложения.
От: MasterZiv СССР  
Дата: 09.02.09 08:32
Оценка:
VladD2 wrote:

> К тому же строготипизированным был виртовский паскаль, который

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

А я другого не знаю. Есть язык, называется "паскаль", его придумал вирт.

> Гы-гы. Реальные реализации Паскаля (Турбо Паскаль) были реально


Так это не паскаль.

Ну ладно. Всё понятно.
Posted via RSDN NNTP Server 2.1 beta
Re[22]: "LINQ как шаг к ФП". Стиль изложения.
От: LaPerouse  
Дата: 09.02.09 08:55
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я вот сильно матерился когда наткнулся на то, что в немерловом компиляторе в некоторых местах дерево токенов и дерево типизированных выражений менялось императивно. Это приводило к тому, что найти ошибку было ну очень сложно. Ведь дерево то огромное.



Императивно менять можно тоже по-разному. Если делать умеючи, все может оказаться не таким страшным (хотя внимательности, в самом деле, нужно больше, чем фп-реализации). Главное правило здесь следующее — если изменения дерева/графа сложные, то должен быть отдельные instance для изменения итерации, то есть перед изменениями нужно сделать копию дерева\графа. В принципе, в чем-то это может оказаться схожим с фп-подходом. Отличие в том, что фп в принципе отрицает изменение, порождая дерево заново, в случае ИП мы не столь радикальны.
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[23]: "LINQ как шаг к ФП". Стиль изложения.
От: LaPerouse  
Дата: 09.02.09 08:57
Оценка:
Здравствуйте, LaPerouse, Вы писали:

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


VD>>Я вот сильно матерился когда наткнулся на то, что в немерловом компиляторе в некоторых местах дерево токенов и дерево типизированных выражений менялось императивно. Это приводило к тому, что найти ошибку было ну очень сложно. Ведь дерево то огромное.



LP>Главное правило здесь следующее — если изменения дерева/графа сложные, то должен быть отдельные instance для изменения итерации


Следует читать как "для изменения и итерации"
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[22]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.02.09 10:25
Оценка: +1
Здравствуйте, MasterZiv, Вы писали:

MZ>VladD2 wrote:


>> К тому же строготипизированным был виртовский паскаль, который

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

MZ>А я другого не знаю. Есть язык, называется "паскаль", его придумал вирт.


О чем это говорит?
Или о уровня твоего развития, или о том, что ты ради флэйма готов кривить душой.

На практике использовался Турбо паскаль/Объхект паскаль/Дельфи. Когда кто-то говорит сегодня "Паскаль", то большинству программистов впоминаются именно они.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: "LINQ как шаг к ФП". Стиль изложения.
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.02.09 10:42
Оценка:
Здравствуйте, lomeo, Вы писали:

L>Да не в синтаксисе разница. Иначе бы они перешли очень быстро. Разница в тех самых нюансах


Я как-то недавно загружал новую версию дельфей. Разницы с шарпом почти нет. Ну, разве что некоторые недоработки. Д

L>Либо мы с тобой очень по разному понимаем синтаксис.


Незнаю. Семантика очень близка. В дотнет-версиях даже библиотеки одни и те же.

Кстати, знание библиотек — это тоже важный фактор для изучения. Перейти с Шарпа на Дельфи.Нэт или Васик.Нэт (и наоборот) значительно проще нежели на/с их неуправляемых аналогов.

L>С этим я не спорю. Я говорю о том, что в этой сумме синтаксические различия не играют значительной роли.


А я говорю, что не меньшую чем другие факторы.

Ну, это же просто как дважды два и очевидно! Если изучать нужно меньше, то и процесс обучения идет проще.

В том же Шарпе учить надо не так мало. Если ты все это знаешь, то язык аналогичный по парадигме и подходу (Васик, Дельфи) и даже язык с большими возможностями (Немерле) изучаются проще. Для Васика и Дельфи достаточно наладить в голове таблицу соответствия [скобки => бегинэнд блоки, синтаксис функции => синтаксис процедур и функций, присвоение знаком '=' => присвоедие знаком ':='].
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: "LINQ как шаг к ФП". Стиль изложения.
От: Курилка Россия http://kirya.narod.ru/
Дата: 09.02.09 11:00
Оценка:
Здравствуйте, VladD2, Вы писали:

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


L>>Либо мы с тобой очень по разному понимаем синтаксис.


VD>Незнаю. Семантика очень близка. В дотнет-версиях даже библиотеки одни и те же.


Может я заблуждаюсь, но синтаксис != семантика
И уж библиотеки точно к синтаксису не относятся.
Re[21]: "LINQ как шаг к ФП". Стиль изложения.
От: Denom Украина  
Дата: 09.02.09 11:45
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>Я как-то недавно загружал новую версию дельфей. Разницы с шарпом почти нет. Ну, разве что некоторые недоработки.


Ты случайно не Delphi Prism имеешь ввиду?
... << RSDN@Home 1.2.0 alpha 4 rev. 1125>>
Re[29]: "LINQ как шаг к ФП". Стиль изложения.
От: LaPerouse  
Дата: 09.02.09 11:53
Оценка:
Здравствуйте, thesz, Вы писали:

T>>>И они правы. Яйцо с надломленным кончиком нельзя высидеть.

T>>>Нарушен, практически, базовый иинвариант яйца.
LP>>Может быть, но тут соль не в инвариантах. Речь о том, может ли считаться измененный объект, пусть и остающийся в пределах своих инвариант, новым объектом, или это суть старый объект. Различие между ФП и ИП уходят корнями в этот вопрос, а все остальное — следствие.

T>Объект можно менять функционально, если он линеен (уникален в смысле "uniqueness types" Clean — на него одна ссылка).


Компиляторы как раз пытаются следить за ссылками, чтобы убрать лишнее копирование.

Например:

newObject = setProperty(object, "name", "somename")

Если object используется только в одном месте, тогда само-собой вместо порождения нового newObject логичнее изменить object.

Но если скажем строчкой ниже делается что-то типа:

transformedObject = transform(object)

то так делать уже нельзя, так как на object существует более чем одна ссылка и на вход transform попадет другой объект.

То есть компилятор сам как бы следит за уникальностью объектов. Поскольку задача это архисложнейшая (по крайней мере мне так кажется), то поэтому видимо в ghc нормально проблему не решили, вот и потребляют программы на haskell столько памяти (правда, там есть еще ленивость, которая тоже ох как сказывается в плане памяти).
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Социализм — это власть трудящихся и централизованная плановая экономика.
Re[23]: "LINQ как шаг к ФП". Стиль изложения.
От: thesz Россия http://thesz.livejournal.com
Дата: 09.02.09 12:23
Оценка:
LP>Отличие в том, что фп в принципе отрицает изменение, порождая дерево заново, в случае ИП мы не столь радикальны.

Наличие выбора порождает трату времени на разрешение его проблемы.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[21]: "LINQ как шаг к ФП". Стиль изложения.
От: lomeo Россия http://lomeo.livejournal.com/
Дата: 09.02.09 12:29
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>А я говорю, что не меньшую чем другие факторы.


Может опять — причина в разном опыте?

VD>Ну, это же просто как дважды два и очевидно! Если изучать нужно меньше, то и процесс обучения идет проще.


Согласен. Однако возьмём два совершенно непохожих синтаксически языка — схема и хаскель. У меня переход был именно такой — от схемы я пришёл к хаскелю. Языки совершенно различны в плане синтаксиса, однако синтаксис совершенно не был для меня проблемой — по крайне мере на фоне всего остального я даже не припомню какие то трудности восприятия. У меня там совсем другие трудности были.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.