ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Common Lisp | |
 |
Page 1 of 1 |
|
|
|
Канал Игры Мечты: «Common Lisp» |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) : 13 Posts: 1420 Location: Хабаровск Joined: 12 Nov 2007
 |
|
Есть такой язык программирования, который, несмотря на славную историю, незаслуженно обходят вниманием как в школе так и в институтах.
Читаем перевод хорошей книги по Лиспу. http://lisper.ru/pcl/
Ставим ЛиспКабинет. http://lispcabinet.sourceforge.net/ Советую устанавливать реализацию SBCL. Впрочем, может кому будет интересна Clojure на JVM. Установщик позволяет закачать и использовать сразу несколько реализаций.
В состав ЛиспКабинета входит Emacs и Slime, образующие удобную среду программирования для Лиспа, достаточно выучить несколько комбинаций клавиш и можно вполне комфортно работать.
Далее вместе изучаем Common Lisp.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Magistr_AVSH
605 EGP
     Рейтинг канала: 2(16) : 119 Posts: 2705 Location: Росс 154 - планета Мерлин. Joined: 26 Dec 2009
 |
|
Zachesa wrote: |
Далее вместе изучаем Common Lisp.
|
Зачем?
_________________ Добрый и сытый кот. |
|
|
Тир-Азан-Гил
240 EGP
   : 27 Posts: 1178 Заблокирован Location: UMMM/UMMS Joined: 27 Nov 2005
 |
|
Magistr_AVSH wrote: |
Зачем?
|
Just for Fun (C) Linus Torvalds
_________________ Good bye, everybody.
I've got to go...(C) |
|
|
pommaniulo
61 EGP
 : -10 Posts: 40
Joined: 12 Jul 2011
 |
|
В универе так и не понял что это за Lisp и зачем это нужно.
Нет, оно понятно было конечно, что функциональный язык, но эти СКОБКИ!..
Книжку читал из любопытства, чтобы восполнить пробелы универа. Рекомендую.
Больше всего понравилось, как автор предлагает ставить скобки.
Я теперь в с++ так же их расставляю. Если бы в университете ктонить бы показал этот замечательный способ, скорее всего лисп бы я смотрел не так поверхностно (сдал лабу и забыл. При этом почти все писали в привычном процедурном стиле.)
|
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) : 13 Posts: 1420 Location: Хабаровск Joined: 12 Nov 2007
 |
|
Лисп -- мультипарадигменный язык программирования, как C#, к примеру. Поэтому можно писать код как в функциональном так и императивном стиле. ООП также поддерживается.
Скобок и правду много, но в редакторе парные скобки подсвечиваются и не запутаешься. Главная особенность такого синтаксиса однообразие представления кода и данных, для метапрограммирования очень полезное свойство.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Варсик
546 EGP
    Рейтинг канала: 4(81) : 117 Posts: 4041 Location: Москва Joined: 22 Dec 2002
 |
|
Zachesa wrote: |
Главная особенность такого синтаксиса однообразие представления кода и данных
|
Он в любом unmanaged языке такой. На этом построен перехват АПИ, допустим.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Аксолотль
87 EGP
 Рейтинг канала: 1(6) : 21 Posts: 278 Location: Мир Joined: 11 Aug 2008
 |
|
Здесь скорее имеется в виду более высокоуровневый смысл — код есть то же самое, что данные и подобно данным может быть сгенерирован или отредактирован программой, потому на лиспе легче писать программы, которые пишут программы, которые пишут программы, которые… (et cetera ). Достигается оно тем, что у лиспа, на самом деле, нет синтаксиса — фактически ты программируешь на чистых AST’ах (на самом деле, синтаксис собирались прикрутить ещё на начальных этапах, но когда таки собрались, все уже привыкли тому, что был).
Это даёт языку невиданную гибкость и расширяемость и очень удобно для написания всяких DSL’ей — тот же стандартный коммонлисповый LOOP с кучей параметров и красивым (спорно, да) алголоподобным синтаксисом реализован именно в виде лиспового макро:
Code: |
;;; Проходимся по хеш таблице, собирая в список имена ключей, значения которых —
;;; нечётные числа
;;; (не представляю, для чего кому-то это может понадобиться, но~)
(loop for key being each hash-key of *table* using (hash-value val)
when (and (numberp val) (oddp val)) collect key) |
На макросах в лиспе реализованы также все остальные варианты лупов, обёртки для работы с внешними ресурсами (вроде файлов или сокетов), обработка исключений и даже ООП, довольно своеобразное, но красивое — создатели Go, видимо, довольно таки сильно смотрели в его сторону при проектировке своего языка.
По-моему Лисп — хороший язык для быстрого прототипирования, скриптинга и всяких бэкендов, но не столь гож для отдельных приложений и, в частности, игрушек — современные имплементации (кроме, разве что, ECL, компилирующего в Си, у которого хватает своих проблем) не способны создать стэнд-элоновый экзешник без пакования внутрь него ~девяностамегабайтного образа памяти со своим рантаймом и всеми прибинденными дээлэлками, да и из действительно рабочих и поддерживаемых игровых библиотек, которые можно всерьёз использовать есть разве что „cl-opengl“.
Ещё это хороший язык для того, чтоб начать программировать: когда начинаешь с языка, не слишком обременённого синтаксисом, приучиваешься больше обращать внимание на семантику, понимать то, как оно всё работает, что в будущем позволяет ускорить знакомство с другими языками. Я сам, пусть сейчас по большей части пишу на Си, начинал с Лиспа, и довольно таки не жалуюсь, ибо вполне могу при необходимости с той же эффективностью писать на D, OCaml’е или джаве.
Уже написав эту простыню, я посмотрел на дату последнего сообщения в теме. Вупс , надеюсь это не сочтут археологией
_________________ „Меня зовут Мэйлинь, я китаянка.“ |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) : 13 Posts: 1420 Location: Хабаровск Joined: 12 Nov 2007
 |
|
Аксолотль wrote: |
не столь гож для отдельных приложений и, в частности, игрушек — современные имплементации не способны создать стэнд-элоновый экзешник без пакования внутрь него ~девяностамегабайтного образа памяти со своим рантаймом и всеми прибинденными дээлэлками
|
вот есть платный вариант Bee Lisp вроде бы не страдающий этим.
добавлено спустя 18 минут:
Вообще-то меня Common Lisp заинтересовал в качестве языка для сервера. Можно веб приложения на нём делать и прочее помаленьку. http://rigidus.ru/articles/restas
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
Last edited by Zachesa on 10:41 16-06-2013; edited 1 time in total |
|
|
Aerton
70 EGP
 Рейтинг канала: 1(8) : 4 Posts: 67 Location: Новосибирск Joined: 20 Aug 2004
 |
|
Аксолотль wrote: |
Лисп — хороший язык для быстрого прототипирования, скриптинга и всяких бэкендов, но не столь гож для отдельных приложений и, в частности, игрушек
|
http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp но, к сожалению, это единственный такой пример.
Никакого "девяностамегабайтного образа памяти" на консоли с 32Mb ОЗУ быть не могло.
|
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) : 14 Posts: 1426
Joined: 27 Jul 2005
 |
|
ИМХО если хочется экзотики, то лучче взять какой-нибудь современный язык, благо их расплодилось большое количество, мне вот случайно попалась книга по Go
_________________ This is what you get ...
(c) Radiohead |
|
|
|
|
|
Канал Игры Мечты: «Common Lisp» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Иногда, когда едешь на машине по правилам, а тебя останавливает гаишник только, чтоб проверить документы, так и хочется сказать: "Ваши действия бессмысленны, вы теряете прибыль!" (Zandrex-XXX)
|
» Common Lisp | |
|