Конференция "Прочее" » Лисп
 
  • AEN (02.05.08 21:46) [0]
    А как вы относитесь к языку Lisp? Освоил за один день... Показался самым нормальным языком... По логичности и структурности получше, чем Pascal и C...
  • TUser © (02.05.08 21:47) [1]
    Говорят, там так
    ))))))))))))))))))))))))))))))))))))))))

  • Morgan (02.05.08 21:54) [2]
    За один день? Вообще-то, знать лисп и уметь программировать на лиспе это немного разные вещи.

    Ситуация такая, что production software на нем сложно писать из-за бедности библиотеками промышленного уровня, по сравнения с тем же C++ (во всяком случае, для свободных имплементаций, в платные встроено много enterprise причиндалов, и для серверной стороны вполне подойдет).
  • DrPass © (02.05.08 23:35) [3]

    > А как вы относитесь к языку Lisp? Освоил за один день..

    Осваивай лучше камасутру - куда более полезная вещь, чем Lisp
  • Тимохов (03.05.08 00:06) [4]
    прикольно, я полгода читал про функциональные языки, так и не понял до всей глубины, а он за один день.

    талант, видимо.
  • Германн © (03.05.08 02:08) [5]

    > Тимохов   (03.05.08 00:06) [4]
    >
    > прикольно, я полгода читал про функциональные языки, так
    > и не понял до всей глубины, а он за один день.
    >
    > талант, видимо.
    >

    Дим. А сколько ты потратил на первый свой вариант "Hello World"? Наверняка меньше одного дня. :)
  • Джо © (03.05.08 05:42) [6]
    >
    >
    > [0] AEN   (02.05.08 21:46)
    > А как вы относитесь к языку Lisp?

    Вразумительно.


    > Освоил за один день

    Маладес.


    > По логичности и структурности получше, чем Pascal и C...

    После дня знакомства с Lisp'ом и не такое почудится может.
  • Ketmar © (03.05.08 13:14) [7]
    я фигею, дорогая редакция. с такой сменой нам всем пора на свалку истории. строем.
  • lerkin (03.05.08 19:24) [8]
    где метла?
  • _ShaggyDoc (03.05.08 19:37) [9]
    Ну, вот я "отношусь" к Lisp. Лет 20 на нем программирую. И лет 25-30 на Pascal.

    Lisp действительно особый язык. Принципиально отличающийся от императивных языков типа Pascal, C и т.п.  Насчет "логичности" могу согласиться, насчет "структурности" - дело спорное. Да и логика бывает разная.

    Однако после 20 лет работы в нем я не рискну сказать, что "освоил". Lisp можно понять действительно за день (или не понять никогда). Вот если "понял", прочувствовал - тогда можно и начинать осваивать.

    Абсолютно бессмысленно противопоставлять Lisp другим языкам. Да, я могу в одной строчке Lisp написать с помощью только самых базовых функций языка то же самое, что потребует нескольких страниц на Delphi. Ну и что? Я с удовольствием пишу в Delphi. Или вынужден с удовольствием писать. Для каждого языка (а более - для среды програмирования) есть своя ниша. Увы, для Lisp она достаточно ограничена.

    Хотя встречаются и в "мире Лиспа" экстремисты, пишущие в Интернет опусы с названием, например, "Скажи нет субд" (именно маленькими буковками) - дескать, ассоциированный список в LISP лучше любой базы данных. Но это для медиков повод познакомиться.

    Возможно и Pascal остался бы замечательным "языком для обучения", придуманным Виртом, если бы не появилась среда Turbo Pascal, а затем и Delphi. А вот для Lisp сопоставимого по качеству хотя бы с TP 3.0 так и не появилось.

    Цитирую из своей книги (где я тоже цитировал кого-то)

    > Существует мнение, что "перепиши хакеры из MIT, Стэнфорда
    > и Карнеги-Меллонского университета ITS на LISP, вся история
    > пошла бы в другую сторону, и открытыми системами мы называли
    > бы, скорее всего, не потомков Unix, а потомков ITS".

    Справка - ITS (Incompatible Timesharing System) - это ОС для мини-компьютеров PDP-10.

    Но этого не случилось, и LISP остался языком для "гурманов", применяется в отдельных направлениях (например, в AutoCAD). Но зато появился C и ему подобные. Что совсем даже не плохо.

    >AEN  

    Незачем вылезать на форум "Дельфинов" с провокационными темами. Приходи хотя бы на DWG.RU, там и разберемся, насколько "освоил". :)

    Сумей, например, объяснить, что делает выражение
    (apply 'mapcar (cons 'list lst))


    и десяток каких именно страниц на Pascal оно может заменить. Тогда и можно будет скромно написать - "начал осваивать".
  • Тимохов (03.05.08 22:05) [10]
    я вообще, когда читал про функц. языки понимал, что это красота неземная :)

    Но я просто побоялся начинать читать (посему ничего про это не знаю) как идиологи этих языков прикрутили их к интерактиву пользователь-машина.

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

    -----------

    как разработчик (программист + думать приходится) могу сказать, что для мат. моделирования функциональные языки - это вещь. вот только, уверен, пока они не сравняться с изобретательностью чел. разума в области оптимизации вычислений.
  • Ketmar © (03.05.08 22:10) [11]
    > дескать, ассоциированный список в LISP лучше любой базы
    > данных.

    ну, не то, чтобы любой, но очень часто таки лучше.

    > А вот для Lisp сопоставимого по качеству хотя бы с TP 3.
    > 0 так и не появилось.

    оно таки да, подобного убожества нет. есть emacs и целая куча Common Lisp'ов, например. DrScheme/MzScheme. и ты пы. ты это, выйди из пещеры, в гугль сходи, что ли…

    > Сумей, например, объяснить, что делает выражение
    > (apply 'mapcar (cons 'list lst))

    глючит? кто такая lst?
  • Morgan (04.05.08 10:53) [12]
    > (apply 'mapcar (cons 'list lst))

    Может быть,  имелось в виду

    (apply 'mapcar (cons 'list (list lst)))
    ?
  • oldman © (04.05.08 11:13) [13]

    > AEN   (02.05.08 21:46)  
    > А как вы относитесь к языку Lisp? Освоил за один день...
    >  


    В далеком 1993 я за день перешел с Basic на Clipper. Имея в своем распоряжении только хелп по синтаксису.

    Сие значит, что Clipper лучше Basic?
  • Anatoly Podgoretsky © (04.05.08 14:12) [14]
    > oldman  (04.05.2008 11:13:13)  [13]

    Клиппер в основе ФоксПро.
    Они одинаковые, оба интерпритаторы в основе. С похожим свободным (бейсик более свободен) языком.
    Поэтому они очень легко осваиваются, надо под рукой иметь только справку, лучше OnLine
  • _ShaggyDoc (04.05.08 22:05) [15]
    >Ketmar ©   (03.05.08 22:10) [11]
    >> дескать, ассоциированный список в LISP лучше любой базы
    >> данных.
    >ну, не то, чтобы любой, но очень часто таки лучше.

    Список - это все-таки данные в памяти, и это совсем не СУБД и даже не простенький плоский DBF-файл.

    Списки в памяти обрабатывать через LISP действительно удобнее всего - для того язык и придуман.

    И даже удобнее непосредственно читать и сразу обрабатывать данные из структурированного текстового файл, написанного с использованием синтаксиса LISP.  Однако это не повод для экстремистких заявлений - "скажи нет субд".

    Повернись история иначе, можно было бы и HTML и XML не придумывать - все, что там есть, можно выразить через LISP.

    > есть emacs и целая куча Common Lisp'ов, например. DrScheme/MzScheme. и ты пы. ты это, выйди из пещеры, в гугль сходи, что ли…

    "Хамишь, парниша" (C) Людоедка Эллочка.

    Зачем мне "в гугль" ходить, я же написал, что 20 лет в LISP работаю и конечно, слежу за его инструментами. И всяких "ты пы" у меня и на машине установлено.

    Однако ничего споставимого по результатам с другими средами разработки в LISP, к моему сожалению, не появилось. Как нет результата в виде
    множества прикладных программ для обычных конечных пользователей. Вот на презренном Бейсике есть, а на LISP (вне специальных систем) что-то не особо наблюдается.

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

    По поводу приведенного кода. Там все правильно. lst - это обрабатываемый список. Будет понятнее, если оформить в виде функции

    (defun ru-list-Douglas-Wilson-transpose (lst)
     (apply 'mapcar (cons 'list lst))
    )



    Алгоритм придумал Douglas Wilson.

    Эта функция транспонирует элементы списка списков - например, перевернуть содержимое, полученное при чтении базы данных

    Пример:
    (ru-list-Douglas-Wilson-transpose
    (list
     (list "ПОЛЕ1_ЗАПИСЬ1" "ПОЛЕ1_ЗАПИСЬ2" "ПОЛЕ1_ЗАПИСЬХ")
     (list "ПОЛЕ2_ЗАПИСЬ1" "ПОЛЕ2_ЗАПИСЬ2" "ПОЛЕ2_ЗАПИСЬХ")
     (list "ПОЛЕ3_ЗАПИСЬ1" "ПОЛЕ3_ЗАПИСЬ2" "ПОЛЕ3_ЗАПИСЬХ")
    )
    )

    Вернет
    (
     ("ПОЛЕ1_ЗАПИСЬ1" "ПОЛЕ2_ЗАПИСЬ1" "ПОЛЕ3_ЗАПИСЬ1")
     ("ПОЛЕ1_ЗАПИСЬ2" "ПОЛЕ2_ЗАПИСЬ2" "ПОЛЕ3_ЗАПИСЬ2")
     ("ПОЛЕ1_ЗАПИСЬХ" "ПОЛЕ2_ЗАПИСЬХ" "ПОЛЕ3_ЗАПИСЬХ")
    )



    И наоборот:

    (ru-list-Douglas-Wilson-transpose
    (list
     (list "ПОЛЕ1_ЗАПИСЬ1" "ПОЛЕ2_ЗАПИСЬ1" "ПОЛЕ3_ЗАПИСЬ1")
     (list "ПОЛЕ1_ЗАПИСЬ2" "ПОЛЕ2_ЗАПИСЬ2" "ПОЛЕ3_ЗАПИСЬ2")
     (list "ПОЛЕ1_ЗАПИСЬХ" "ПОЛЕ2_ЗАПИСЬХ" "ПОЛЕ3_ЗАПИСЬХ")
    )
    )



    Вернет
    (
     ("ПОЛЕ1_ЗАПИСЬ1" "ПОЛЕ1_ЗАПИСЬ2" "ПОЛЕ1_ЗАПИСЬХ")
     ("ПОЛЕ2_ЗАПИСЬ1" "ПОЛЕ2_ЗАПИСЬ2" "ПОЛЕ2_ЗАПИСЬХ")
     ("ПОЛЕ3_ЗАПИСЬ1" "ПОЛЕ3_ЗАПИСЬ2" "ПОЛЕ3_ЗАПИСЬХ")
    )



    Здесь не ограничено количество полей и записей, нет циклов, использованы только базовые функции apply, mapcar, cons и list, да "симовл квотирования" - апостроф.

    Попробуйте сделать подобное таким минимумом штатных средств другого языка. А это - LISP!
  • Palladin © (04.05.08 22:26) [16]
    где вы блин раньше были... я вот буквально недавно интересовался по поводу реализации быстрой сортировки в лиспе...
  • Пробегал2... (05.05.08 00:47) [17]
    _ShaggyDoc   (03.05.08 19:37) [9]
    Сумей, например, объяснить, что делает выражение
    (apply 'mapcar (cons 'list lst))


    а что делает это выражение, что нужно заменить десятком страниц на Delphi?

    Anatoly Podgoretsky ©   (04.05.08 14:12) [14]
    надо под рукой иметь только справку, лучше OnLine


    а чем это справки онлайн стали лучше офлайн?

    _ShaggyDoc   (04.05.08 22:05) [15]
    использованы только базовые функции apply, mapcar, cons и list, да "симовл квотирования" - апостроф


    я не понимаю. Ну а я на Delphi могу использовать какую-нибудь DLL или .PAS юнит, где тоже надо будет дернуть только 1-2 фунции. И что?

    Только то, что в LISP эти функции являются частью языка?
  • Palladin © (05.05.08 01:05) [18]

    >Только то, что в LISP эти функции являются частью языка?


    да. логика используемого (избранного тобой как основной, любимый, несравненый) языка очень сильно влияет на мышление. ты даже не представляешь на сколько сильно. мне очень очень сложно мыслить в рамках перла например. в рамках лиспа еще сложней. подсознание пытается построить процедурное, не списочное, решение. а в чужой монастырь сотсвои уставом не лезут.
  • Anatoly Podgoretsky © (05.05.08 01:33) [19]
    > Пробегал2...  (05.05.2008 0:47:17)  [17]

    Тем что не надо рыться, поскольку контенстная.
    Ты не путай с Интернетом.
    OnLine значит на ходу, по месту, нажимаешь F1 и сразу в теме.
 
Конференция "Прочее" » Лисп
Есть новые Нет новых   [134435   +11][b:0.001][p:0.002]