|
|
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNk0rviniv_an_ruВесь кайф лиспа начинается для человека тогда, когда он перестаёт писать лишние условные операторы и лишние циклы :) кто Вам такую чушь сказал? действительно, при чем здесь лисп. лишние циклы и условия и в паскале нежелательно использовать. И на Паскале и на Лиспе можно транспонировать матрицу, представленную списком (строк) списков (элементов соответствующей строки). И там и там можно сделать это парой вложенных циклов. Но в хорошем Лиспе можно обойтись и без рисования циклов ручками. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2010, 23:57 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ruНо в хорошем Лиспе можно обойтись и без рисования циклов ручками. Код: plaintext точно, срузу не сообразил. последнее время пользуюсь только ф-ными языками и забыл, что существуют языки без map\reduce\filter. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 00:05 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ru ... Тело функции --- "неявный progn", то есть просто пишем содержимое. При этом если элемент тела явного или неявного progn-а начинается с лишних скобочек, то это пара условие-результат (т.наз. "неявный cond"): если условие выполнено, то неявный progn вернёт результат. При этом CDR явного или неявного cond-а всегда является неявным progn-ом, а если CAR cond-a начинается с лишних скобочек, то это неявный progn (который в свою очередь может содержать неявные cond-ы которые могут содержать неявные cond-ы и т.п.). Тело loop-а тоже является неявным progn-ом, поэтому выйти из цикла можно в любом месте, просто воткнув неявный cond. Супер. Для сложной логики вида "правило-исключения" --- чрезвычайно выразительная вещь. неявные progn для тел процедур в (почти)любом диалекте и так, уж в Схеме-то точно. а вот неявный cond это уже идиотизм. как компилятор должен поступить в таком случае: Код: plaintext 1. 2. тем более в Схеме, где первым термом может быть любое вычислимое выражение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 01:02 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ruИ на Паскале и на Лиспе можно транспонировать матрицу, представленную списком (строк) списков (элементов соответствующей строки). И там и там можно сделать это парой вложенных циклов. Но в хорошем Лиспе можно обойтись и без рисования циклов ручками. Код: plaintext это не матрица , а список списков а написать подобные функции для какого-нибудь С++-ного List<T> не составляет труда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 01:04 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
k0rvin, А где вы тут видите лишние скобки? Всё на месте. Несовместимость со схемой --- это второй вопрос. Тем хуже для схемы, IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 01:07 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
k0rviniv_an_ruИ на Паскале и на Лиспе можно транспонировать матрицу, представленную списком (строк) списков (элементов соответствующей строки). И там и там можно сделать это парой вложенных циклов. Но в хорошем Лиспе можно обойтись и без рисования циклов ручками. Код: plaintext это не матрица , а список списков а написать подобные функции для какого-нибудь С++-ного List<T> не составляет труда Хорошо. "Транспонировать список списков по аналогии с транспонированием матрицы". На C++, для списков из STL, без циклов, без рекурсии с глубиной равной числу строк или колонок и без системных вызовов. Клёвая, доложу вам, задачка, ответ подлиннее одной строчки получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 01:16 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ruА где вы тут видите лишние скобки? Всё на месте. так как компилятор расценит такое выражение? как Код: plaintext 1. 2. 3. iv_an_ruНесовместимость со схемой --- это второй вопрос. Тем хуже для схемы, IMHO. Ваше O проистекает только из Вашего незнания Scheme и Common Lisp. подобное поведение (неявный cond) лишь усложняет чтение программы человеком и её разбор компилятором, вызывает путаницу. поэтому никакой большей пригодности для обучения это не даёт, в отличие от простой и понятной Scheme. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 01:39 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ruХорошо. "Транспонировать список списков по аналогии с транспонированием матрицы". На C++, для списков из STL, без циклов, без рекурсии с глубиной равной числу строк или колонок и без системных вызовов. Клёвая, доложу вам, задачка, ответ подлиннее одной строчки получится. а mapcar по-Вашему как работает? без циклов и без рекурсии? видимо какая-то особая магия? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 01:40 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ru, что такое transpose? Это функция. Она реализована, кончно с циклами и системными вызовами, но нам этого не видно. Мы можем реализовать такую же ффункцию для С, Fortran'a, Delphi и тд., в результате скажем что в языке ... список из списков транспонируется в одно слово и это будет верно: transpose(a); А если кто то будет спорить, мы скажем, что у нас новый диалект этого языка, в котором есть операция transpose. Это тоже будет верно. А если кто то и тогда будет спорить, мы скажем, что он привык к старому диаекту этого языка и не может изучить новый (наш). Это тоже будет верно. Суета, братья ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 01:45 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
в С++ например можно было бы объявить подобные функции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. и тогда объявить "транспонирование списка списков" как Код: plaintext 1. и юзать например так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 02:12 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ru Код: plaintext 1. 2. 3. А где можно поиграться с реализацией? А что делать, если функция (первый терм в s-expr) должна быть получена в результате выполнения другой функции? Лепить apply? "Неявный apply" по мне так естественнее и удобнее, чем "неявный cond". Код: plaintext 1. 2. 3. 4. Унрегистередiv_an_ru, что такое transpose? Это функция. Она реализована, кончно с циклами и системными вызовами, но нам этого не видно. Мы можем реализовать такую же ффункцию для С, Fortran'a, Delphi и тд., в результате скажем что в языке ... список из списков транспонируется в одно слово и это будет верно: transpose(a); А если кто то будет спорить, мы скажем, что у нас новый диалект этого языка, в котором есть операция transpose. Это тоже будет верно. А если кто то и тогда будет спорить, мы скажем, что он привык к старому диаекту этого языка и не может изучить новый (наш). Это тоже будет верно. Суета, братья Ага, только какой смысл в знании кривого глючного "языка", который не стандартизован, не распространён, неудачно спроектирован, не поддерживается и в принципе не поддерживаем, и больше никто его не знает, да и сам человек постоянно забывает? Если бы в этих рассуждениях рациональное зерно было сильнее словоблуднического, то дальше ассемблера информационные технологии никогда бы не развились просто за ненадобностью. Ну и стандартный аргумент: декларируя транспонирование в терминах mapcar, мы не привязываемся к конкретному алгоритму его реализации. Мы описываем ЧТО мы хотим получить, но не делаем жёсткой привязки к тому, КАК это должно получиться. Соответственно, оставляем простор для компилятора и оптимизатора, в первую очередь -- распараллеливания mapcar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 08:21 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
k0rviniv_an_ruА где вы тут видите лишние скобки? Всё на месте. так как компилятор расценит такое выражение? как Код: plaintext 1. 2. 3. Undefined function lambda k0rviniv_an_ruНесовместимость со схемой --- это второй вопрос. Тем хуже для схемы, IMHO. Ваше O проистекает только из Вашего незнания Scheme и Common Lisp.Пруфлинк, пожалуйста ;) Как раз знаю (по крайней мере знал :), потому и не люблю. В большие плюсы Scheme нужно записать continuation-ы (и как следствие engine с fuel), но для моих сугубо счётных инженерных задач это "не перевешивало" никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 09:46 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
k0rvinв С++ например можно было бы объявить подобные функции: Код: plaintext 1. 2. Там в формулировке специально "противопрологовская" вредность вписана, " без рекурсии с глубиной равной числу строк или колонок ". Конечно, умный компилятор может самостоятельно RH-recursion в tail loop завернуть, и вы можете к этому апеллировать, но я тогда встану в позу и обиженно скажу "а тогда у вас есть циклы" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 09:59 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
Siemarglrstudio, C# - бракуем. Это язык для сиюминутных поделок -собрана в кучу малая толика разных парадигм - только самое простое -описание 200 страниц, гораздо сложнее паскаля или бейсика -меняется от версии к версии Я как бы даже промышленным его бы назвал с натяжкой. дауж. Мой путь программиста начинался с QBasic, VBA, VB 6.0, Assembler и (Cи/Си++/HTML/Java/SQL на курсах), Дот Нет, АСП уже на работе изучал ... но не смотря что в моем резюме вскользь или углублено отмечено около двух десятков языков, я не пытаюсь напаривать "образцы структурного программирования" двадцатилетней давности, а выделяю современные парадигмы легкие для быстрого старта и получения результатов :) ладно, посему удаляюсь от дискусии. Беден тот Новичок который послушает ваших советов Все ИМХО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 11:45 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
rstudio, Да почти все равно, с какого именно языка начинать, или с каких именно, главный критерий --- использование в хороших книжках. Этот критерий, кстати, эффективно фильтрует всякие дурацкие бейсики, ну а дальше --- свобода выбора в зависимости от предметной области. Благо сейчас доступны реализации чего угодно, не приходится выбирать из кривого паскаля, фортрана-IV и фортрана-77 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 11:56 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
pascal или VB6 -- последующие vb сложнее, а 6 версия проще и к тому же нагляднее (и нагляднее паскаля) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:07 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
да в том то и дело, что не почти всеравно. Каличность выбраного языка легко может отбить охоту у новичка. Учить нужно то, что используешь. Я вот начинал с макросов VBA, я их использовал и писал на них программы, а потом спрыгнул на VB6. Но любые поделия 20 летней давности (вроде того же паскаля) которые не внятно дают представление о современной разработке могут напрочь отбить охоту и вычерпать энергию у новичка. Да Assemlber интересен для новичка чтобы понять как работает компьютер Да Дот Нет или Джава интересен чтобы взять представление о современной разработке и средствах разработки. Да HTML полезен чтобы знать из чего состоят сайт Да SQL полезен чтобы знать где хранятся большие обьемы данных и как к ним доступаться Да Си++ полезен чтобы представлять о операционной системе, какие АПИ она предоставляет браться за феноменальный паскаль, пролог, лисп .... ну хочешь убить несколько месяцев своей жизни не на что, или в лучшем случае на общее развитие - убивай. Но знай, что в это убитое время можно было пропустить пару книг по рефакторингу или патернам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:10 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
rstudio> легкие для быстрого старта и получения результатов и мое> Это язык для сиюминутных поделок В общем звучит одинаково =) Язык для обучения нужен для другого - для понимания идей. Но пиши еще. Мне важно мнение "золотой моложежи", то бишь критика. ЗЫ. Только вчера от ребенка услышал "не буду учить историю - она мне в жизни не пригодится" ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:13 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
Siemarglrstudio> легкие для быстрого старта и получения результатов Да именно так, язык должен быть легким для освоение. Это основное условия для новичка. Siemargl и мое> Это язык для сиюминутных поделок В общем звучит одинаково =) Назови язык лучше и востребованей. Я жду. Siemargl Язык для обучения нужен для другого - для понимания идей. Я написал список языков которые раскрывают ВСЕ идеи. От разметки страниц до баз данных, регистровой работы процессора, современной разработки ПО. Siemargl Но пиши еще. Мне важно мнение "золотой моложежи", то бишь критика. А вот я засомневался в компетенции человека который дот нет назвал языком сиюминутных поделок ....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:24 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
rstudio Да Assemlber интересен для новичка чтобы понять как работает компьютер Да Дот Нет или Джава интересен чтобы взять представление о современной разработке и средствах разработки. Да HTML полезен чтобы знать из чего состоят сайт Да SQL полезен чтобы знать где хранятся большие обьемы данных и как к ним доступаться Да Си++ полезен чтобы представлять о операционной системе, какие АПИ она предоставляет Ну так можно и продолжить Да Паскаль будет нужен для разбирательств с тройками Хоара и остальной классической верификацией. Да Пролог будет нужен для изучения продукционных систем. Да Лисп будет нужен при изучении языков и методов ИИ, САПР, робототехники. Да DYNAMO полезен... что, вы не знаете, где используются языки, основанные на DYNAMO? Зря, для вас остался незамеченным большой пласт технической культуры (и, возможно, шанс неплохо заработать :) Какую предметную область изучает человек --- важно, а языки можно брать почти любые из используемых в этой области. Кстати, хороший русский язык тоже полезен, но почему-то вымирает он быстрее всех коболов с PL/1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:56 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
rstudioЯ написал список языков которые раскрывают ВСЕ идеи. один молодой поэтУ меня книжка вышла. Сборник. "Сто стихов о любви". Закрыл тему . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 12:58 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
iv_an_ruдля вас остался незамеченным большой пласт технической культуры (и, возможно, шанс неплохо заработать :) не знаю что такое "продукционные системы" или "тройки хоара" и какое это имеет отношение для общего представления работы процессора, разметки страниц и тд для новичка. Но явно таких вакансий не намного больше чем по сбору клубники в январе. Это уже предметные области, которые можно освоить на рабочем месте при знании азов программирования. iv_an_ru Какую предметную область изучает человек --- важно, а языки можно брать почти любые из используемых в этой области . Именно, и Лисп с Паскалем и Прологом явно не клеится для 95% общего мейнстрима ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 13:02 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
SiemarglЯзык для обучения нужен для другого - для понимания идей. Не согласен. Идеи осмыслятся после. На начальном этапе нужна компактная модель для интуитивного восприятия. Когда высказыаешь мысль на родном языке, она преобразуется в слова без специалььных размышлений, это базовый уровень владения языком. Если захочешь, то потом на этой основе можно освотиь технологию худож. прозы или поэзии. Можно придумать свою новую технику (напр. Маяковский), но начинать нужно тольо с простого однозн. выражения мыслей. В программировании то же самое: с начала научиться излагать свои мысли, не думая об особенностях/возможностях языка. Соотв. язык для начального обучения должен быть простым и строгим, но при этом "настоящим", те. позволять получать практич. результаты. Совсем глупо выбирать учебный язык исходя из предполаг. сферы деятельности. Хороший программист за время активной работы успевает поработать в НИИ, в банке, в больнице, в органах и тд. Это, ИМХО, одна из прелестей этой профессии: не знаешь, куда забросит завтра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 13:08 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
rstudio Но любые поделия 20 летней давности (вроде того же паскаля) которые не внятно дают представление о современной разработке могут напрочь отбить охоту и вычерпать энергию у новичка. Но знай, что в это убитое время можно было пропустить пару книг по рефакторингу или патернам. Ты уже если в теме общаешься, то читай, а не только пиши. Ну какие паттерны и рефакторинг? Какие принципы современной разработки? Что за бред ты городишь? Речь идет об обучении программированию с нуля. Разницу не улавливаешь? Так о чем тогда разговор? Ему говорят - ребенку нужно вдолбить основы о массивах и прочих типах данных, научить сортировать, вообще строить алгоритмы. Он не знает самого примитивного, для него может сложность представлять задача типа "повводить всяких чисел, что-то посчитать и вывести". Он еще толком не въехал, что такое функция и как передаются параметры. Ну какие паттерны? При чем тут современные индустриальные нормы разработки? Разговор слепого с глухим, ейбогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 13:11 |
|
||
|
Лучший учебный язык
|
|||
|---|---|---|---|
|
#18+
rstudio Именно, и Лисп с Паскалем и Прологом явно не клеится для 95% общего мейнстрима зачем новичку ориентироваться на 95%-й мейнстрим? может из него хороший программист получится, а не знатель разметок страниц и патернов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2010, 13:13 |
|
||
|
|

start [/forum/topic.php?fid=16&startmsg=36879396&tid=1343397]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
161ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 470ms |

| 0 / 0 |
