лисп

Feb. 8th, 2003 01:49 pm
avva: (Default)
[personal profile] avva
Я учу Lisp (язык программирования такой, для тех, кто не знает). Немного стыдно, что до сих пор его не знал (совсем простые куски кода я умею читать, подцепил где-то случайно, в emacs'е скорее всего; но писать не могу, и язык по-настоящему не понимаю), но как-то не нужен он мне был. Да он мне и сейчас не нужен особенно, но захотелось вот заполнить эту лакуну. От лакуны к лакуне -- так, глядишь, и дойдёшь до чего-то хорошего.

Взял в библиотеке две книги пару недель назад: Lisp (Winston&Horn, 3rd edition), и Programming in Common Lisp (Brooks). Сегодня начал их читать, и если найду ещё немного времени, скачаю и установлю какой-нибудь Лисп поиграться.

Книга Винстона и Хорна более подробна, основательна; вместе с тем более "попсовая" что ли. В тексте сквозит настойчивое стремление объяснить читателю, что Лисп - это совсем не страшно. Вместо car и cdr всегда используются first и last. И много ещё подобных мелочей. Книга Брукса куда более лаконична, написана более уверенным тоном и для людей, уже что-то знающих и уверенных в себе.

Концептуальная простота Лиспа меня восхищает. Я вообще очень падок на концептуальную простоту, и потому очень люблю, например, Smalltalk и Forth, хоть и не работал в них сколько-нибудь долго, не писал ничего действительно серьёзного. Теперь Лисп, наверное, присоединится к этому списку.

Date: 2003-02-09 06:49 am (UTC)
From: [identity profile] angerona.livejournal.com
Да нет, функциональности там совсем не меньше -- ну назовите что-нибудь, что можно сделать в Паскале, чего нельзя сделать в Схеме. Функциональность, про которую говорили другие люди, немного другая -- на Схеме сложнее написать огромные проэкты, в которых участвуют много людей. Это да, но этого в классе не требуется. Все остальное на ней делается замечательно.

Позвольте, какие только целые числа? Более красивых математических решений, чем на схеме, я не видела. Если использовать streams, то вообще получается замечательно красиво. А рекурсия -- как раз очень сильный концепт и такой, который понять надо. Вот все эти if, then, понимаются очень просто (тем более, что и в схеме они есть).

Я честно говорю с опытом: 4 года помогала преподавать этот самый начальный класс на схеме. Один семестр мы попробовали сделать это на Java (ну или совместить со схемой) -- это был такой страшный бардак, что стонали и студенты и преподаватели и профессора сказали что больше такого извращения не будет. Ну попробуйте написать компайлер или евальюэтор на джаве -- сколько для этого понадобится строк и файлов? И сколько будет ошибок? Можно ли это давать как одно (!) домашнее задание в начальном классе? (да, пусть тот евальюэтор, что студенты пишут на схеме, не совсем сильный, и оптимизации в нем нет, но ведь они изучают и понимают саму концепцию). Или object-oriented adventure game тоже за одно домашнее задание? пусть там нет gui -- пусть там только текст, как встареньком MUDe, но пишут же.

То, что вы сказали про схему против паскаля зависит не от схемы, а от разных типов языков -- типированных против нетипированных. Нетипированных тоже много -- схема, лисп, smalltalk, еще куча, я уверена. Затевать спор про то, какие из них лучше, не будем -- это излюбленная тема спора, вроде big-endian vs. little-endian, и решения никогда не будет. Мне кажется, что для обучения, схема очень удобна.

Date: 2003-02-09 07:36 am (UTC)
From: [identity profile] bety.livejournal.com
"Да нет, функциональности там совсем не меньше -- ну назовите что-нибудь, что можно сделать в Паскале, чего нельзя сделать в Схеме."

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

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

Date: 2003-02-09 09:14 am (UTC)
From: [identity profile] cmm.livejournal.com
> Под функциональностью я (и мне кажется другие тоже) имела ввиду всякие удобства, или даже не знаю, как это иначе назвать -- в общем то, из-за чего машине Тюринга на практике предпочитают другие языки.

экспрессивность.

Date: 2003-02-09 01:39 pm (UTC)
From: [identity profile] bety.livejournal.com
О! Спасибо :)

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 06:15 pm
Powered by Dreamwidth Studios