LINUX.ORG.RU
ФорумTalks

Изучение Лиспа, подкиньте идею


0

0

Подкиньте задачек, именно учебных, которые помогут прочувствовать этот язык. Прочитал Мир Лиспа, на очереди SICP, ну и вся остальная литература, до чего доберусь. Но ведь, чтобы изучить язык программирования, надо на нём программировать(с). Задачки в МЛ решаются в уме за 5 минут. Читать теорию и чужой код без конкретного задания/замысла - очень утомляет, а придумать никак не могу. Гуру, подскажите.

И вообе, кто как изучает новые языки/технологии/etc? Я вот понял, что почти всё, чему я научился(в какой-то степени C/C++, Java, asm x86, SQL, ...), я научился выполняя данное мне задание, к примеру, в Универе, параллельно читая теорию. А придумать учебное задание самому мне сложно. Лисп хочу выучить, так сказать, чтобы знать, расширить кругозор, и по возможности, применить. Пока примененить не знаю куда конкретно.


Для некоторой группы городов с заданными расстояниями между ними требуется найти кратчайший маршрут с посещением каждого города один раз и с возвращением в исходную точку.

Sun-ch
()

А че, классическая задача современности: пиши сайт на лиспе. Все стандартные наборы: гостевуха, чат, форум, новостная лента и пр. Почувствуешь все на своей шкуре. Но учитывая специфику языка, пиши на лиспе код, который будет генерировать движки сайта (из заданного шаблона) на перле, php, jave и пр. В зависимости от желания виртуального заказчика.

ЗЫ: я обучался только так: либо работая, либо создавая что-то для себя.

soomrack ★★★★★
()
Ответ на: комментарий от Sun-ch

Тема гостевухи неисчерпаема. Можно написать древовидную гостевуху по генетическим алгоритмам (но лично я их не люблю).

soomrack ★★★★★
()
Ответ на: комментарий от anonymous

>У Lisp есть и свои средства для создания сайта:(см. ссылки внизу обсуждения)

Само собой, все уже написано/записано/уписано до нас.

Но там, если я не ошибаюсь, осуществляется именно конвертирование кода common lisp в php. Я же предложил писать код, который будет сам создавать код движка (это вроде как гибче чем всякие нынешние шаблоны). И лучше всего это можно сделать на лиспе, это его судьба :).

soomrack ★★★★★
()
Ответ на: комментарий от soomrack

> пиши на лиспе код, который будет генерировать движки сайта (из заданного шаблона) на перле, php, jave

Это не труЪ. Чтобы было труЪ, надо генерить машкод.

tailgunner ★★★★★
()

.
Идёшь на http://www.lib.ru/, Берёшь художественное произведение.
Анализируешь, и выделяешь из него персонажей, предметы, их атрибуты и отношения.
( Для визуализации, строишь семантическую сеть (граф). )

Задача: программно выделить основную сюжетную линию (действующих лиц и отношения между ними).

Как такая задача?

:-)

Neksys ★★★
()
Ответ на: комментарий от Sun-ch

> А в чем проблема?

Ни в чем. Я же говорю - всё остальное не труЪ

> пых-пых - тут ненужная сущность.

Яволь!

tailgunner ★★★★★
()
Ответ на: комментарий от Neksys

Кстати, в качестве бонуса, можно собрать статистику по количеству персонажей, их активности, количеству атрибутов и сложности взаимосвязей (анализ графа). Провести анализ классических и прочих произведений. Попытаться выявить закономерности в полученных численных характеристиках для хорошо известных и для слабоизвестных художественных произведений. Попробовать выделить различные стили повествования. Найти закономерности.

:-)

Neksys ★★★
()
Ответ на: комментарий от anonymousI

Как видишь, он даже на ЛОРе постить может :)

boombick ★★★★★
()
Ответ на: комментарий от boombick

> Когда отпустит, попытаться понять, нафига все это нужно было :)

Чтобы прославиться как величайший computer scientist со времеи изобретения компьютера, вестимо.

tailgunner ★★★★★
()
Ответ на: комментарий от boombick

Разве, это сложно?

Вполне, себе, так, учебная задачка...

Нормально для студента.

P.S. Потом, впарит владельцам крупнейших поисковиков за несколько лимонов баксов, как "алгоритм выделения смысловой нагрузки теста на русском языке".

:-)

Neksys ★★★
()
Ответ на: комментарий от Neksys

"Свести содержание текста к коротким и существенным логическим формам, отметить в каждой формуле центральное по смыслу понятие, ассоциировать понятия между собой, и образовать таким образом единую логическую цепь идей — вот сущность понимания текста!": http://northedu.ru/content/view/205/114/

"Интеллект-карты — это удобная техника для представления процесса мышления или структурирования информации в визуальной форме. Цели создания карт могут быть самыми различными: прояснение для себя какого-то вопроса, сбор информации по определенной теме, принятие решения, запоминание сложного материала, передача знаний ученикам или коллегам и еще множество других": http://northedu.ru/content/view/188/158/)

:-)

Neksys ★★★
()
Ответ на: комментарий от Sun-ch

Кстати да, была мысль насчёт графов и комбинаторики. Но мне они показались небольшими, не подумал чё-то я о коммивояжерё. =)

KF
() автор топика

> в какой-то степени C/C++, Java, asm x86, SQL

"Полиглотство" в АЯП - это моветон. Пойдете реально работать за реальное бабло - узнаете почему.

Bioreactor ★★★★★
()
Ответ на: комментарий от Sun-ch

> генетические алгоритмы решить - это да.

Вот был у нас такой безвременно покинувший форум Профессор В.С.Лугоффский. :) До сих пор пытается фитнес-функцию на ЛИСПЕ написать. :)) Типа подхвостовая рекурсия там нужна, рассказывал. :))

Bioreactor ★★★★★
()
Ответ на: комментарий от Bioreactor

> "Полиглотство" в АЯП - это моветон.

Конечно, у светских львов всегда считалось приличным исключительно обсуждение светских слухов из утренних газет, прелестей светских дам и любовных интрижек. Излишнее же проявление ума всегда было неприличным, ибо заставляло окружающих чувствовать себя полными идиотами. Согласен.

> Пойдете реально работать за реальное бабло - узнаете почему.

Ну, для понимания этого не надо даже идти работать "за реальное бабло". Однако, моветон/не моветон не имеют ничего общего с практической пользой.

Возьмем простой пример: программист, разрабатывающий приложение на C++ в *nix. Какие языки он применяет:

1. C++. На самом деле = 3 языка.

1a. Некоторое примитивное надмножество C (классы переопределение операторов и т.п.).

1б. Язык шаблонов. Используется для метапрограммирования на C++. Имеет совершенно другую парадигму, нежели надможество C.

1в. Язык макросов. Убогонький, но все-таки язык. Практика проведения собеседований показывает, что не все его осилили.

2. Сборка проекта. Не менее одного языка (например, make), парадигма которого существенно отличается от всех предыдущих. На этом языке описывается программа, собирающая проект в кучу. В случае Autoconf добавляется еще m4 и shell (но о нем ниже).

3. Общедевелоперское обитание в *nix предполагает знание sh/sed/awk. Это уже три языка.

4. Если ты настоящий программист, а не дрессированная обезьянка на коротком поводке, то должен уметь организовать (читай, автоматизировать) свою работу (и, возможно, товарищей) более оптимальным образом. Это практически бесконечный процесс, как правило предполагающий знание скриптовых языков общего назначения: Perl, Python и т.п.

Итого: ~9 языков.

Хотя, тут стоить заметить, что C++ значительно требовательнее к интеллекту программиста, нежели тот же Lisp. В Lisp всего один язык, он же для сборки программ, его же скриптовые диалекты можно использовать для автоматизации работы. Остаются мелочи -- sh/sed/awk. Всего 4 языка. Так что, лисперы в 2 раза глупее C++-ников. Это объективный факт :)

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

> В Lisp всего один язык

В Лиспе есть макросистема, до которой Си++ - как до луны. Есть так же императивное, функциональное и ОО-подмножества (4 языка в твоей формулировке).

tailgunner ★★★★★
()
Ответ на: комментарий от Bioreactor

> "Полиглотство" в АЯП - это моветон. Пойдете реально работать за реальное бабло - узнаете почему.

Рассказывай - а то мы уже работаем, но до сих пор не знаем.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> императивное, функциональное и ОО-подмножества (4 языка в твоей формулировке)

Ну, функционального подмножества в стандарте нет, OO-подмножество я не выделял, а выделил шаблоны потому, что синтаксис программ на шаблонах принципиально другой. CLOS из прочего Lisp'а не особо выбивается и не воспринимается как другой язык -- так, еще одна библиотечка.

Отдельным мини-языком можно считать LOOP macro.

А вообще, Lisp'еры просто комплексуют перед C++-никами, вот и клепают себе языки, чтоб умнее казаться ;)

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

> Если ты настоящий программист, а не дрессированная обезьянка на коротком поводке...

> Итого: ~9 языков.


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

anonymous
()
Ответ на: комментарий от watashiwa_daredeska

make/sh/sed/awk наследуем грехи Отцов в 5 поколении? Для лисперов характерен другой стиль разработки, c гораздо более высокой продуктивностью.

Sun-ch
()
Ответ на: комментарий от Sun-ch

> Для лисперов характерен другой стиль разработки, c гораздо более высокой продуктивностью.

Ну, это для совсем глупых лисперов, для которых лисп и shell, и sed и awk, и редактор у них на лиспе, и WM :)

watashiwa_daredeska ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.