Smalltalk по-русски
пятница, Июль 08, 2005
Что общего между Smalltalk и Lisp?

Smalltalk for Lispers:

Не смотря на фундаментальные отличия между функциональной и объектно-ориентированной парадигмой, Smalltalk и Lisp имеют ряд общих подходов, идей и механизмов.
В этом документе продемонстрировано несколько таких сторон. Пожалуйста, попробуйте с ними разобраться, даже если вы не lisp-ер, и некоторые идеи представляют для вас исключительно академический интерес.

И еще, на эту же тему, моя любимая ссылка: "Как избавится от объектов в Smalltalk".

Comments:
Работая с исходниками Smalltalk, я раньше и не задумывался, насколько сильно влияние Лиспа. Конечно, обилие блоков несколько удивляло, но в своей практике программирования я почти никогда не видел необходимости в их применении. Поначалу, просто использовал их в скриптах Workspace (иногда хотелось получить именно скрипт, т.е. не трогать дерево классов), или использовал блок в качестве локальной функции (это плохой стиль). Сейчас могу сказать, что, наверное, только пару раз использовал блочные переменные "в тему".

Еще очень понравился пример с MEMO. Мне для одной задачи приходилось сохранять в Dictionary промежуточные результаты вычислений рекурсивного алгоритма и это прекрасно работало, но до такого красивого универсального решения я не додумался.

В продолжении темы, хочу предложить ссылку на любопытную статью о Лиспе.
 
Работая с исходниками Smalltalk, я раньше и не задумывался, насколько сильно влияние Лиспа. Конечно, обилие блоков несколько удивляло, но в своей практике программирования я почти никогда не видел необходимости в их применении. Поначалу, просто использовал их в скриптах Workspace (иногда хотелось получить именно скрипт, т.е. не трогать дерево классов), или использовал блок в качестве локальной функции (это плохой стиль). Сейчас могу сказать, что, наверное, только пару раз использовал блочные переменные "в тему".

Еще очень понравился пример с MEMO. Мне для одной задачи приходилось сохранять в Dictionary промежуточные результаты вычислений рекурсивного алгоритма и это прекрасно работало, но до такого красивого универсального решения я не додумался.

В продолжении темы, хочу предложить ссылку на любопытную статью о Лиспе.
 
Развивая тему: COND for Squeak
 
Такая реализация COND, по моему, чистейший пример "crazy-engineering". Для такого применения DNU хак - это явно слишком. Уж лучше по-дедовски выносить условие в отдельный метод и писать
( ... ) ifTrue: [ ^ ..."doDomething-1" ].
( ... ) ifTrue: [ ^ ... "doSomething-2" ].
.........

danil
 
Отправить комментарий

<< Home

Популярные статьи
:: Smalltalk?!
:: Почему Smalltalk?
:: Great Leap Forward from Java to Smalltalk

Последние сообщения
:: [Squeak] Small-land - уроки испании
:: 1-е ежегодное соревнование программистов на Smallt...
:: [StS2005] Smalltalk в полупроводниковой промышленн...
:: Smalltalk Solutions 2005
:: Parla - диалект Little Smalltalk 3
:: Машина настоящего смолтокера
:: [Seaside] Окно на море
:: [Squeak] Tweak wiki
:: [VW] Скорость это наше всё!
:: [VW] Cincom Smalltalk 2005 Summer Edition

Архив
Предыдущие новости / Декабрь 2004 / Январь 2005 / Февраль 2005 / Март 2005 / Апрель 2005 / Май 2005 / Июнь 2005 / Июль 2005 / Август 2005 / Сентябрь 2005 / Октябрь 2005 / Ноябрь 2005 / Декабрь 2005 / Январь 2006 / Февраль 2006 / Март 2006 / Апрель 2006 / Май 2006 / Июнь 2006 / Июль 2006 / Сентябрь 2006 / Октябрь 2006 / Ноябрь 2006 / Декабрь 2006 / Январь 2007 / Февраль 2007 / Март 2007 / Апрель 2007 / Май 2007 / Июнь 2007 / Август 2007 / Сентябрь 2007 / Ноябрь 2007 / Январь 2008 / Март 2008 / Май 2008 / Июнь 2008 / Июль 2008 / Август 2008 / Сентябрь 2008

Atom Feed
Smalltalk по-русски


Powered by Blogger