fregimus: (Default)
[personal profile] fregimus
If you are being (or have recently been) taught CS but not in Lisp (or Scheme, or any functional language whatsoever), you should do yourself a lifetime favor by downloading videos and the textbook of the famous Abelson and Sussman's MIT CS 6.001 course. Lisp is one of the easiest languages to learn there on Earth, the functional paradigm is unmatched in its power and expressiveness, the course is delivered by two famous teachers: you've got 20 hours of professionally enlightening self-study and not a single excuse to miss it.

This is how the very first lecture begins (Abelson):
I'd like to welcome you to this course on computer science. Actually, it's a terrible way to start off. Computer science is a terrible name for this business. First of all, it's not a science. It might be engineering, or might be art, or— you'll see that computer so called “science” has a lot of common with magic. You'll see that in this course.
And it is not computer either!

Tags:

(no subject)

2007-12-25 07:04 (UTC)
Posted by [identity profile] iodiot.livejournal.com
Lisp - ужасная вещь, мне одного курса в университете с головой хватило. В MIT его изобрели для реализации всяких машин чёткого и не очень вывода, но использовать Lisp для обучения CS - это уж слишком, честное слово.

Наверное, тов. Профессор правильно сделал, что зачеркнул оба слова :)

Но ничего однозначно утверждать не могу, может всему виной моя инерция мышления. Я бы скачал посмотреть, да трафик - неподъёмный. Поэтому пока оставим вопрос полуоткрытым. А Вы сами что по этому поводу думаете?

(no subject)

2007-12-30 11:46 (UTC)
Posted by [identity profile] fregimus.livejournal.com
Я думаю, что lisp развивает несколько другой тип мышления, нежели Java. А еще думаю, что Вы уже знали достаточно программирования на C++, когда поступали учиться. Дело в том, что проще языка, чем lisp, еще не изобрели, мне кажется.

Преимущество lispа — огромное преимущество! — в том, что он не навязывает никакого типа мышления сам по себе. Одинаково просто (или, если хотите, одинаково сложно) пишутся программы и в процедурном, и в функциональном стиле, и continuations, и coroutines. Конструкция (loop ...) в cl выглядит, на первый взгляд, убожеством, по сравнению с for в C++, хотя, внимательно приглядевшись, можно заметить, что она несколько мощнее.

Например, можно реализовать что-то подобное continuations, используя throw в C++, но это будет, в определенном смысле, хак. В lispе же здесь используется совершенно естественная конструкция языка. Думаю, что в C++ не получится полноценно смоделировать функциональный стиль вообще. Множество других примеров.

Почитайте еще болтовню Джоиля по этому поводу (ссылка в самом посте) — я с ним полностью согласен.
Edited 2007-12-30 11:46 (UTC)

Profile

fregimus: (Default)
fregimus

March 2014

S M T W T F S
       1
2 3456 78
910 1112 131415
16171819202122
23242526272829
3031     

Most Popular Tags

Page generated 2025-12-24 16:48

Expand Cut Tags

No cut tags