Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возможности ЛИСПА 
V
    Опции темы
Kaskad
  Дата 13.1.2005, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 24.9.2004

Репутация: нет
Всего: 3



Собственно, какие возможности есть в лиспе, которых нет в других языках? smile


--------------------
Well come to America!
PM MAIL   Вверх
simanyay
Дата 13.1.2005, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



Трудно и долго объяснять преимущества и недостатки целого языка программирования, особенного такого монстра как Lisp. Если Вас интересуют преимущества и недостатки в определенной области (а их великое множество), уточните вопрос, пожалуйста.


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Kaskad
Дата 13.1.2005, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 24.9.2004

Репутация: нет
Всего: 3



Конкретно, меня интересует Лисп в области ИИ.

Вот, хочу сдать сессию и взятся за лисп, стоит ли? Есть желание написать прогу мини-общалку между чеовеком и компом, в которой ИИ будит на основе правил, теорем и аксиом давать ответы на запросы чеовека. Уже есть наработки и примерная схема алгоритма. Но.. Написать подобное на Паскале реально, но не практично smile поэтому хочу узнать на что годится Лисп. Или может на Прологе попробывать? smile


--------------------
Well come to America!
PM MAIL   Вверх
simanyay
Дата 14.1.2005, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



AI это одна из областей для которых Lisp подходит очень очень хорошо. И для этой области за Lisp взяться стоит, но это не Basic учить и, поэтому, готовься smile Кстати, можешь посмотреть на GNU/Emacs психиатр. Это тоже самое, что ты хочешь делать и на Lisp'e. Вообще, логика есть одна из важнейших областей AI и поэтому также советую ознакомиться с Prolog. У самого, млин руки только до Prolog дошли и то поверхностно smile


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Andrey1
Дата 14.1.2005, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 621
Регистрация: 27.2.2004
Где: Moscow

Репутация: -1
Всего: 5



Цитата(Kaskad @ 13.1.2005, 00:39)
Собственно, какие возможности есть в лиспе, которых нет в других языках?

Во-первых, языки принято делить на: 1) процедурные (С++, Pascal и пр.); 2) функциональные (lisp, ocaml и пр.); 3) логические (prolog, mercury и пр.).

Таким образом, вопрос распадается на два: *1) Чем 2) отличается от всех остальных; *2) Чем лисп отличается от других функциональных языков.

Оба - сложные вопросы... Я могу лишь сказать, что мне нравится в Коммон Лиспе:
1) Все можно представить в виде списков, ...
2) ... с которыми удобно работать в функциональном стиле: достаточно описать, что нужно сделать с элементом списка и про-map-ить это на весь список. В работе с векторами и матрицами - это очень удобно;
3) Данные = код. Бывает очень удобно составить список с некоторыми командами (функкиями) и потом просто передать эту "программку" eval-юатору на исполнение;
4) Функции высших порядков. Иногда разные функции делают почти тоже самое. Чтобы не создавать дополнительных сущностей, можно написать одну функцию - ту самую общую часть - а затем просто этой функции передавать дополнительный код;
5) Порядок вычислений. В лиспе можно делать с ним пости все, что угодно smile. Правда, есть недостаток - нужно помнить порядок вычисления пости всех форм;
6) Тип связан yсо значением, а не с переменной. Это - прям как в голове у человека;
7) Перепрограммируемый reader - то есть есть встроенный "лексер", если хотите.
8) У символов могут быть свойства;
9) CLOS - common lisp object system - жемчужена CL. Так, например, потомок может не только унаследовать методы и заменить их, но и задать пред-методы, которые будут выполняться раньше, и пост-методы, которые будут выполняться после родительских методов.
Теперь добавим, ...
10) ... динамическую модель памяти, с возможностью изменения части кода после процедуры интерпретирования и запуска программы, ...
... и можно понять, чем же Лисп отличается от других языков.

Еще не забудем, что существуют компиляторы с лиспа, которые генерируют бинарный код, который работает быстрее аналогичной программы на С и ФОРТРАН, и можно понять, что медлительность Лиспа - свойство реализации, а не языка как такового.


Андрей

Это сообщение отредактировал(а) Andrey1 - 16.1.2005, 16:38


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Kaskad
Дата 14.1.2005, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 24.9.2004

Репутация: нет
Всего: 3



Цитата(simanyay @ 14.1.2005, 10:42)
Кстати, можешь посмотреть на GNU/Emacs психиатр


Где? smile




--------------------
Well come to America!
PM MAIL   Вверх
simanyay
Дата 16.1.2005, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: нет
Всего: 36



Цитата(Kaskad @ 14.1.2005, 22:54)
Где? smile


В GNU/Emacs, разумеется

Цитата(Andrey1 @ 14.1.2005, 20:44)

Во-первых, языки принято делить на: 1) процедурные (С++, Pascal и пр.); 2) функциональные (lisp, ocaml и пр.); 3) логические (prolog, mercury и пр.).


В какую категорию подпадают Ruby и AspectJ?


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Hidrag
Дата 9.4.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 877
Регистрация: 9.4.2005
Где: JDK

Репутация: 1
Всего: 25



Ого! Нам бы в ВУЗе такое про лисп расказали мы бы может даже с интересом занимались им... А то смотрим на него и думаем: а нафик он нужен!?
И изучаем мы его на XLisp и задачи типа этой: "Напишите функцию (fullength x), считающую полное количество атомов (не равных nil) в списке x." С одной стороны интересно полазить в нем, а с другой практического применения не видно. Может у кого нить есть интересный пример программы на Лиспе?


--------------------
user posted image
PM WWW ICQ   Вверх
Lisper
Дата 15.4.2005, 23:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Зайдите на http://www.franz.com/success да посмотрите, что пишется на Лиспе.
XLisp не Common Lisp и рядом не валялся с основными реализациями (Allegro CL, LispWorks, CMUCL, SBCL etc.), хотя вещь неплохая, особенно XLispStat.

Основная возможность (остальные тоже вносят немалый вклад) - это макросы. Кто не знает, макросы в Лиспе - это программы на Лиспе, которые пишут программы на Лиспе.
Хотя для Java и других поп.языков есть какое-то подобие (только не вспоминайте С++ темплэйты smile ), Лисповым макросам IMHO нет конкрентов, потому что их мощь опирается на остальные сильные стороны языка и весь этот язык доступен в макросах.

Макросы используются в ходе решения задачи для создания специальных языков, на которые в свою очередь задача может решаться на порядки быстрее. Пример с одного из форумов, где шло такое же обсуждение:

| (do-select ((CustomerName CustomerEmail)
| :from Customers
| :where (> CustomerAge 100))
| (send-email CustomerEmail
| :subject "Congratulations!"
| :body (format nil
| "Dear ~A, you won a prize! Call ~A."
| CustomerName company-phone)))

Прелесть в том, что для этого не требуется никаких генераторов разборщиков, препроцессоров и т.п.
  Вверх
Lisper
Дата 15.4.2005, 23:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не смотря на | форматирование не выдержало smile Попробуем заглянуть в хелп и вставить код по цивильному:

Код

(do-select ((CustomerName CustomerEmail)
                  :from Customers
                  :where (CustomerAge 100))
                   (send-email CustomerEmail
                                      :subject "Congratulations!"
                                      :body (format nil  "Dear ~A, you won a prize! Call ~A."
                                                                    CustomerName company-phone)))

  Вверх
Lexaxa
Дата 25.3.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



Лисп - супер для написания дополнительных команд в АвтоКаде!!
Знакомый проектировщик написал прогу и сократил время на выполнение работы в неск раз!!!
Я сейсчас тоже пытаюсь что-то ихобразить для облегчение своей работы,но я пока только начал учить Лисп,точнее АвтоЛисп.Вообще ничего сложного в нем нет.Есть один минус - в пособиях по Лиспу огромное количество опечаток =)
PM MAIL   Вверх
VH_
Дата 25.3.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



>Lexaxa
Рекомендую посетить(посещать) форум на www.caduser.ru
PM MAIL   Вверх
sandello
Дата 27.4.2008, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 18.5.2005
Где: Пермь

Репутация: нет
Всего: 2



Цитата(Hidrag @  9.4.2005,  12:00 Найти цитируемый пост)
А то смотрим на него и думаем: а нафик он нужен!? 

Прочитай статейку Джоэла Спольски 
ИМХО, толково объясняет зачем учить лисп. Правда, там не лисп а другой функциональный язык


--------------------
user posted image
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0911 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.