Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.73/70: Рейтинг темы: голосов - 70, средняя оценка - 4.73
Cheb
90 / 57 / 8
Регистрация: 09.11.2011
Сообщений: 443
#1

Полезные коды и авторские программы на Lisp

30.10.2014, 09:43. Просмотров 12652. Ответов 67
Метки нет (Все метки)

Расскажите, пожалуйста, что на лиспе пишите? вкратце, хотя бы. Очень интересно.
Понятно, что студенты пишут лабы, но вот все остальные, чем занимаются?
Сам пока ничего не пишу, а учу язык, но есть задумки написать веб-сервер для парсинга отчетов от АТС-ки. Заходит админ на него и смотрит кто куда и во сколько звонил по офису, статистика всякая там и прочее.
В общем не стесняйтесь, похвастайтесь, может сумеете заинтересовать случайного прохожего языком.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2014, 09:43
Ответы с готовыми решениями:

Запуск программы в lisp
Здравствуйте. Недавно начали преподавать lisp и ничего толком не объяснив,...

Как измерить время выполнения программы на Lisp?
Добрый вечер, вопрос ясен из сабжа.

Как писать программы на lisp с большим количеством строк
Простите за ламмерский вопрос. Я только начал изучать лисп и возникла...

Запуск одной lisp программы для нескольких dwg файлов
Необходимо LISP-ский макрос выполнить для целого ряда *.dwg файлов, находящихся...

Кто-нибудь, распишите пожалуйста каждую строчку кусочка программы на Lisp
Кто-нибудь, распишите пожалуйста каждую строчку кусочка программы на Lisp: :...

67
Slenon
3 / 3 / 3
Регистрация: 25.07.2016
Сообщений: 147
30.07.2017, 21:39 #61
Перевод чисел с арабской системы счисления в римскую:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(defun ArabRim ()
(setf R (vector "M" "D" "C" "L" "X" "V" "I"))
(format t "Vvedite Arab = ")
(setf Arab (read))
(format t "Arab = ~A ==> Rim = " Arab)
(setf end (floor Arab 1000))
  (do ((i 1 (+ i 1)))
      ((> i end) 'done)
    (format t "M"))
  (do ((j 0 (+ j 1)))
      ((> j 2) 'done)
(setf s  (/ (- (mod Arab (expt 10 (- 3 j))) (mod Arab (expt 10 (- 2 j)))) (expt 10 (- 2 j))))
(setf I  (+ (* 2 j) 2))
(setf V  (+ (* 2 j) 1))
(setf X  (* 2 j))
(setf s1 (- s 5))
(cond ((= 0 s) (format t "" ))
      ((= 4 s)(format t "~A" (concatenate 'string (svref R I) (svref R V))))
      ((= 9 s)(format t "~A" (concatenate 'string (svref R I) (svref R X))))
      ((and (< 0 s) (< s 4))
       (do ((k 1 (+ k 1)))
         ((> k s) 'done)
         (format t "~A" (svref R I))))
      ((<= 0 s1) (format t "~A" (svref R V)) 
       (do ((l 1 (+ l 1)))
         ((> l s1) 'done)
         (format t "~A" (svref R I)))))))
Данная функция может быть переписана в более простой вариант следующим способом:
1. s может стать списком при превращении числа Arab в строку (с последующим
преобразованием строки в список символов)
2. К списку будет применена функция ВП, которая, в свою очередь будет применять к
символам функцию превращения их в римские числа (которые будут образовывать
список)
3. Слияние символов в строку и её печать.
P.S. Это моя "фетиш-прога".
1
helter
Эксперт по математике/физике
3751 / 2779 / 299
Регистрация: 12.03.2013
Сообщений: 5,123
30.07.2017, 22:28 #62
Ужасно. Сегодня написал по другому поводу, но к вашему коду тоже относится: Решение квадратного уравнения Хотите — создайте тему, обсудим.
0
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
31.07.2017, 12:09 #63
Я уже выше писал, что сделал программу расчёта двигателя Стирлинга. Теперь добавлю, что я вообще писал и использовал на CL.

- искусственный интеллект (немного не дописал, ха-ха)
- систему управления жизненным циклом базы данных Firebird (хранение исходников процедур, таблиц и триггеров в hg, сборка серверной части за одну команду, автогенерация представлений и интерфейсов для редактирования таблиц)
- макросы для Firebird (сокращать часто используемые фрагменты текста)
- генерацию процедур на SQL для отчётов по опросным листам
- конвертер данных об экспериментах из XML в Firebird
- конвертер данных о торговле из dbf в Firebird + интеграция данных из нескольких баз, работал в продакшене несколько лет
- моделирование работы системы ветрогенератор-аккумулятор по архиву метеоданных
- управление печью (читаем температуру, подаём сигнал на блок питания нагревателя)
- сервер приложений (среднее звено в трёхзвенке)
- среду для запуска тестов расчётной программы
- транслятор с языка 1С 7.7 на лисп (без языка запросов и без форм. Язык сделал, стандартную библиотеку не доделал)
- расширения функции read: привязки макросов чтения к символам, а не к буквам, перехват процесса чтения символа, запоминание положения прочитанных скобок и т.п.
- совместно с monk - библиотеку для версионного состояния с поддержкой версионных структур, хеш-таблиц, консов и массивов
- совместно с monk - версию интерпретатора SBCL с поддержкой call/cc.

Может выглядеть очень впечатляюще, но на самом деле большинство моих проектов довольно самопальные по качеству Тот мой код, который можно опубликовать, находится здесь: https://bitbucket.org/budden/

Сейчас делаю язык программирования Яр, транслируемый в Common Lisp, а также среду разработки clcon, поддерживающую tcl/tk, Common Lisp, язык Яр и markdown.
1
Luke0208
33 / 58 / 6
Регистрация: 22.01.2017
Сообщений: 637
31.07.2017, 18:34 #64
Крутой ты)

Добавлено через 8 минут
Собственны язык, да и еще со стандартом) А он какую парадигму представляет? По чем учился компиляторы писать? Книга драконов?
0
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
31.07.2017, 20:32 #65
Вопросы по моему ЯП лучше обсуждать в соответствующей теме
0
_sg
3719 / 3516 / 237
Регистрация: 12.05.2012
Сообщений: 2,447
19.02.2018, 08:39 #66
https://github.com/CodyReichert/awesome-cl
0
budden
198 / 99 / 4
Регистрация: 16.08.2015
Сообщений: 193
23.02.2018, 14:32 #67
Уже давно выложил свои заметки про устройство SBCL. Они не особо упорядочены и системны. Я делал их, когда пробовал свои силы в модификации SBCL под свои нужды.

http://программирование-по-русски.рф/static/sbclt-docs.html

Сам генератор документов написан на смеси Common Lisp и Javascript. Чтобы определить статью, нужно вызвать макрос лиспа и дать ему текст статьи в виде markdown. Далее, библиотека showdown, написанная на javascript и транслированная с javascript на Common Lisp с помощью транслятора cl-javascript превращает эти кусочки в html. Далее небольшой кусок кода на лиспе составляет оглавления и т.п.

Всё это можно взять в моём сборнике (Яре), но это там не документированно. Если кому-то интересно, пишите письма, адрес есть на сайте.

Также есть никак не связанный с моим проект документирования SCBL: https://github.com/guicho271828/sbcl-wiki/wiki

Так что если преподавателям нечем занять студентов, то их можно занять анализом и документированием тех частей SBCL, которые не документированы.
1
_sg
3719 / 3516 / 237
Регистрация: 12.05.2012
Сообщений: 2,447
02.05.2018, 14:48 #68
These months in Common Lisp: Q1 2018
https://lisp-journey.gitlab.io/blog/...-lisp-q1-2018/
1
02.05.2018, 14:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2018, 14:48

Организация циклов в Lisp (bee lisp demo)
разбираюсь с простыми задачами, эти пока не знаю, как решать... помогите...

Парсер lisp на lisp
Здравствуйте! Решил написать компилятор racket (диалект lisp) на racket, для...

Полезные коды и проекты на VBA
В этой теме предлагаю выкладывать различные коды и готовые проекты VBA,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
68
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru