Re[20]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 11:43
Оценка:
Здравствуйте, FR, Вы писали:

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


I>>Я с этим сильно не согласен. Кроме того, у хаскеля кривая входа слишком крутая.


FR>Обоснуй первое предложение, хаскель согласен крутоват.


на уровене f n = n + 1 действительно всё просто.

а если будет чтото посложнее, типа

sum :: [Integer] -> Integer
sum = 0
sum (x:xs) = x + sum xs

то такая конструкция вобщем то ничего не скажет новичку
Re[21]: Перевод статьи Страуструпа
От: FR  
Дата: 16.01.10 11:53
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

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


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


I>>>Я с этим сильно не согласен. Кроме того, у хаскеля кривая входа слишком крутая.


FR>>Обоснуй первое предложение, хаскель согласен крутоват.


I>на уровене f n = n + 1 действительно всё просто.


I>а если будет чтото посложнее, типа


I>sum :: [Integer] -> Integer

I>sum = 0
I>sum (x:xs) = x + sum xs

I>то такая конструкция вобщем то ничего не скажет новичку


Такая

int Sum(const int *Src, int Size)
{
int Result = 0;

for(;Src < Src + Size; ++Src) {
    Result += *Src;
    }

return Result;
}


ничем для новичка не лучше.
Re[22]: Перевод статьи Страуструпа
От: 24  
Дата: 16.01.10 12:34
Оценка: -1 :))
FR>Такая
FR> ...
FR>ничем для новичка не лучше.

Такая работать не будет, т.к. условие никогда не выполнится (разве что Size передать отрицательный). Но если её записать без явного использования указателей (которые можно объяснить чуть позже), как-то так:

int sum(const int array[], int size) {
    int result = 0;
    for (int i = 0; i < size; i++) {
        result += array[i];
    }
    return result;
}

то новичку её понять будет проще, чем хаскель, т.к. понимание рекурсии у многих приходит далеко не сразу.
Re[23]: Перевод статьи Страуструпа
От: 24  
Дата: 16.01.10 12:41
Оценка:
24>условие никогда не выполнится
Прошу прощения, имел ввиду, что условие выполняется всегда, т.е. цикл не прекратится.
Re[13]: Перевод статьи Страуструпа
От: Шахтер Интернет  
Дата: 16.01.10 13:06
Оценка: :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Шахтер, Вы писали:


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


LVV>>>Здравствуйте, Mr.Cat, Вы писали:


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

LVV>>>>>>>мощном
LVV>>>>>>>Паскаль и С
MC>>>>>>Что-то меня смущает в этом сочетании.
LVV>>>>>Языки одного уровня...
MC>>>>Мне кажется, все три слова вместе как-то не смотрятся.
LVV>>>Я не вижу обоснования ни от вас, ни от Шахтера.

Ш>>А какие нужны обоснования? То что мерседес лучше жигулей, неужели нужно обосновывать?

LVV>А Паскаль или С вы считаете Мерседесом? Или наоборот — жигулями?

Я думаю, должно быть ясно, что С -- это мерседес по сравнению с Паскалем-жигулем.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[22]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 13:20
Оценка: -1
Здравствуйте, FR, Вы писали:

FR>Такая


FR>
FR>int Sum(const int *Src, int Size)
FR>{
FR>int Result = 0;

FR>for(;Src < Src + Size; ++Src) {
FR>    Result += *Src;
FR>    }

FR>return Result;
FR>}
FR>


FR>ничем для новичка не лучше.


если буквально подсунуть новичку именно такой пример, то да, толку не будет.

Но его объяснить будет гораздо легче, чем тот что на хаскеле.

У новичка нет в голове понятий список, массив, последовательность и тд и тд и тд.

соответсвенно прочесть запись на хаскеле он в принципе не в состоянии.

в случае с сишной записью можно объяснить нектоорые кусочки и человек сходу поймет все необходимые понятия для чтения примера.
Re[23]: Перевод статьи Страуструпа
От: FR  
Дата: 16.01.10 13:36
Оценка: -1
Здравствуйте, 24, Вы писали:

24>то новичку её понять будет проще, чем хаскель, т.к. понимание рекурсии у многих приходит далеко не сразу.


Это просто срабатывают твои привычки, код на хаскеле или лучше ML образных гораздо более понятный, простой и декларативный.
Re[23]: Перевод статьи Страуструпа
От: FR  
Дата: 16.01.10 13:41
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:


I>если буквально подсунуть новичку именно такой пример, то да, толку не будет.


Конечно на сиобразных без компилятора легче ошибиться

I>Но его объяснить будет гораздо легче, чем тот что на хаскеле.


Я согласен что Хаскель не очень хорош для новичка, ML и его производные (SML, Caml light, OCaml) гораздо лучше.

I>У новичка нет в голове понятий список, массив, последовательность и тд и тд и тд.


I>соответсвенно прочесть запись на хаскеле он в принципе не в состоянии.


Код прозрачен и декларативен, очень похож на математическое определение, так что и читаться новичком будет проще.

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


Это говорит только твоя привычка. И как раз Хаскельный код объяснить будет проще.
Re[17]: Перевод статьи Страуструпа
От: yumi  
Дата: 16.01.10 13:53
Оценка: :))
Здравствуйте, Ikemefula, Вы писали:

VD>>(+ 1 2 3 4 5 6 7 8 9)

I>Я там пропустил знаки, хотел + и — чередовать, но поспешил

1 — 2 + 3 — 4 + 5 — 6 + 7 — 8 + 9 == (+ 1 -2 3 -4 5 -6 7 -8 9)
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re[13]: Перевод статьи Страуструпа
От: yumi  
Дата: 16.01.10 14:03
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

I>К тому моменту, когда люди начинают учить программирование, они уже имеют за спиной не менее 10 лет использования математики-арифметики, где все записывается вот так — sin(x) + cos(x)

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

Сам замерял? Или кто на ушко шепнул?

I>Откуда берется этот барьер ?


Вот и мне интересно, где же этот барьер

I>если взять чтото посложнее, то сразу возникает проблема

I>(+1 (* 4 3))

Оченама сложно!

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


Правда правда?

I>Вот по прошествии тех же 10 лет он сможет читать такое так же легко как и 1+4*3 и никак не раньше. Но, вобщем то, родным способом это все равно не станет даже после 20 лет.


Вот мне интересно, откуда же вы такие цифры точные берете?

I>Кроме этого нужно еще и бороться со скобками,


Кто так сказал? Зачем с ними бороться?
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re[17]: Перевод статьи Страуструпа
От: yumi  
Дата: 16.01.10 14:19
Оценка: 9 (1) -1
Здравствуйте, Ikemefula, Вы писали:

I>лисп от питона отличается как табуретка от бегемота.


Это говорит ровно о том, что ты ни Питона, ни Лиспа не знаешь. Как раз таки оба этих языка очень похожи. Посмотри сравнение Питером Норвигом.
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re[5]: Перевод статьи Страуструпа
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 16.01.10 14:42
Оценка: 1 (1)
Здравствуйте, LaptevVV, Вы писали:

J>>Что значит — задумался, он уже несколько лет профессор в универе

LVV>Он и пишет, он и пишет, что 6 лет.
LVV>А задумался он потому, что до него начинает доходить, насколько С++ как язык программирования сложен и ненадежен в реализации.

Хм. По-моему, статья совсем не о C++.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[24]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 14:48
Оценка:
Здравствуйте, FR, Вы писали:

I>>если буквально подсунуть новичку именно такой пример, то да, толку не будет.

FR>Конечно на сиобразных без компилятора легче ошибиться

I>>Но его объяснить будет гораздо легче, чем тот что на хаскеле.


FR>Я согласен что Хаскель не очень хорош для новичка, ML и его производные (SML, Caml light, OCaml) гораздо лучше.


Походи по рынку и поспрашивай наприер у людей, как они делают колбасу, солят сало и тд.

I>>У новичка нет в голове понятий список, массив, последовательность и тд и тд и тд.

I>>соответсвенно прочесть запись на хаскеле он в принципе не в состоянии.

FR>Код прозрачен и декларативен, очень похож на математическое определение, так что и читаться новичком будет проще.


Это только у тех новичков, у которых очень серьезный мат-бекграунд. ТОлько у них и ни у кого больше.

Большинство программистов на данный момент такого мат-бекграунда не имеют.

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


FR>Это говорит только твоя привычка. И как раз Хаскельный код объяснить будет проще.


Тогда объясни, почему доминирует Си,а не ml caml и тд.
Re[14]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 14:51
Оценка:
Здравствуйте, yumi, Вы писали:

I>>К тому моменту, когда люди начинают учить программирование, они уже имеют за спиной не менее 10 лет использования математики-арифметики, где все записывается вот так — sin(x) + cos(x)

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

Y>Сам замерял? Или кто на ушко шепнул?


Сам. Но объяснение нашел в букваре по теории впф и когнитивной психологии. Могу продемонстрировать на тебе же.


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


Y>Правда правда?


Именно так.

I>>Вот по прошествии тех же 10 лет он сможет читать такое так же легко как и 1+4*3 и никак не раньше. Но, вобщем то, родным способом это все равно не станет даже после 20 лет.


Y>Вот мне интересно, откуда же вы такие цифры точные берете?


Из букваря по теории ВПФ.

У тебя есть внятное объяснение, почему лисп никогда не доминировал ?
Re[18]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 14:53
Оценка: :)
Здравствуйте, yumi, Вы писали:

VD>>>(+ 1 2 3 4 5 6 7 8 9)

I>>Я там пропустил знаки, хотел + и — чередовать, но поспешил

Y>1 — 2 + 3 — 4 + 5 — 6 + 7 — 8 + 9 == (+ 1 -2 3 -4 5 -6 7 -8 9)


да, оно. Вот сгенери тких и подобных по сто штук, дай какому новичку и сравни результаты, по времени, по кол.ву ошибок, и тоже самое нужно прогнать в стрессовой обстановке, например стоять над испытуемым с секундомером и давать кое какие комманды.
Re[18]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 15:51
Оценка:
Здравствуйте, yumi, Вы писали:

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


I>>лисп от питона отличается как табуретка от бегемота.


Y>Это говорит ровно о том, что ты ни Питона, ни Лиспа не знаешь.


Вот сравни, пример из твоей ссылки. Вот об этом речь и идет.

(defun fact (n) 
  (if (<= n 1) 1 
      (* n (fact (- n 1)))))


def fact (n): 
    if n <= 1: return 1 
    else: return n * fact(n — 1)


Может у тебя скобки это пробельный символ, я не в курсе
Re[6]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 16:12
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

J>>>Что значит — задумался, он уже несколько лет профессор в универе

LVV>>Он и пишет, он и пишет, что 6 лет.
LVV>>А задумался он потому, что до него начинает доходить, насколько С++ как язык программирования сложен и ненадежен в реализации.

ГВ>Хм. По-моему, статья совсем не о C++.



Но Страуструп по любому на измене сидит
Re[14]: Перевод статьи Страуструпа
От: LaptevVV Россия  
Дата: 16.01.10 16:17
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>>>А какие нужны обоснования? То что мерседес лучше жигулей, неужели нужно обосновывать?

LVV>>А Паскаль или С вы считаете Мерседесом? Или наоборот — жигулями?
Ш>Я думаю, должно быть ясно, что С -- это мерседес по сравнению с Паскалем-жигулем.
Ключевое слово: вы ДУМАЕТЕ. Это только мнение.
Керниган тоже так думал, поэтому он написал статью: Почему паскаль не является моим любимым языком.
В ней он с "конструкцией в руках" обосновывает, почему его не устраивает паскаль.
Я же знаю массу достаточно серьезных людей, которые считают С/С++ полным отстоем, и предпочитают Модулу-Оберон-Компонентный паскаль.
Холивар тут заводить не будем. Я сам спорил когда-то с Губановым. И сейчас постоянно и неоднократно оберонщикам указываю на слабые места. Но это не умаляет недостатков С/С++.
С моей точки зрения С — это не мерседес, а велосипед. На нем можно проехать ВЕЗДЕ, в отличие от мерседеса...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[18]: Перевод статьи Страуструпа
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.01.10 16:17
Оценка:
Здравствуйте, yumi, Вы писали:

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


I>>лисп от питона отличается как табуретка от бегемота.


Y>Это говорит ровно о том, что ты ни Питона, ни Лиспа не знаешь. Как раз таки оба этих языка очень похожи. Посмотри сравнение Питером Норвигом.


Кстати говоря,

Python is an excellent language for my intended use. It is easy to use (interactive with no compile-link-load-run cycle), which is important for my pedagogical purposes. While Python doesn't satisfy the prerequisite of being spelled J-A-V-A, Jython is close. Python seems to be easier to read than Lisp for someone with no experience in either language. The Python code I developed looks much more like the (independently developed) pseudo-code in the book than does the Lisp code. This is important, because some students were complaining that they had a hard time seeing how the pseudo-code in the book mapped into the online Lisp code (even though it seemed obvious to Lisp programmers).


Я выделил самые важные места. И несмотря на проблемы с перформансом, о чем автор говорит чуть ниже, Питон собрал бОльшую аудиторию нежели Лисп в лучшие года. Вот так то.

P.S. стоит читать ссылки, которые сюда сам же и постишь
Re[6]: Перевод статьи Страуструпа
От: LaptevVV Россия  
Дата: 16.01.10 16:25
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

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


J>>>Что значит — задумался, он уже несколько лет профессор в универе

LVV>>Он и пишет, он и пишет, что 6 лет.
LVV>>А задумался он потому, что до него начинает доходить, насколько С++ как язык программирования сложен и ненадежен в реализации.

ГВ>Хм. По-моему, статья совсем не о C++.

Не о С++. Мне кажется естественным, что в явном виде С++ в статье нет, но дух его как-то за занавесом присутствует...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.