Pull to refresh
14
0
Мамкин Мансур @mmans

Пользователь

Send message

Кстати это мне напомнило историю с фразой, состоящей из одних аффиксов (видимо дело было на каком-то эсперанто-слете): "Ina aro ekis iĝi ege aĉa"

Возможно вас заинтересует PicoLisp (https://picolisp.com), самодостаточный и уже очень давно дружит с вебом и умеет много интересных вещей.

Больше десятка лет читал "Хакер", за журнал большое спасибо всем причастным. Когда-то много лет назад списывался с вашими редакторами, было большое желание, чтобы взяли интервью у одного немецкого программиста, создателя довольного любопытного диалекта лиспа, но к сожаление ничего не выгорело. Интересно, возможно ли это сейчас? Думаю, статья бы получилась отличная

Слышал от знакомого, бывавшего в Индии, о том как там основательно загажено побережье в некоторых регионах, там всякие фармфабрики США, возможно и других развитых стран
кажется автор picoLisp сейчас доделывает нечто подобное — универсальный UI для Андроида, на серверной стороне лисп (работает на множестве posix-систем)
кажется ответил не в ту ветку
сложно что-либо сказать по поводу того что макросы это те же функции, поскольку я не изучал детали реализации в других лиспах, в том числе и в Clojure. В PicoLisp же вообще нет понятия macro-expansion, насколько мне помнится. Т.е. исходный код фактически является конечным кодом для виртуальной машины.
А вы не опускайте руки :)
То что вы привели — это самая обычная функция. В PicoLisp в зависимости от формы определения параметров они (параметры) либо вычисляются перед вызовом функции, либо нет. Это не повод навешивать на подобную функцию ярлык «макрос». Причем в определении функции можно задать первые несколько параметров вычисляемыми, а остальное невычисляемыми (как раз ваш пример). Я подозреваю, вы и так в курсе.
По поводу СУБД: так практически вся СУБД на самом лиспе и написана, только самые низкоуровневые функции на ассемблере (если говорить о 64битной версии.
я конечно не эксперт по части лиспов. Но насчет макросов: там есть только read-макросы, а это несколько другая вещь. А обычных макросов там нету, поскольку они там и не нужны в силу специфики виртуальной машины пиколиспа.

По поводу rosettacode: возможно вы правы насчет «стенографического программирования», но за счет краткости и экспрессивности он по скорости уделывает многих конкурентов. Когда-то в далеком 2006 году пиколисп участвовал в каком-то состязании по СУБД, и оказался на втором месте (на первом был MySQL. К сожалению в инете подробностей этой истории практически сейчас не найти. Насчет большого примера я пожалуй пас, это вам к автору, у него за 20 с лишним лет проектов накопилось прилично.
кстати, вот диалект лиспа: PicoLisp, в котором принципиально нет компилятора и макросов, но как ни странно, почти все задачи решаются гораздо компактнее, чем в других популярных лиспах. Пруф: rosettacode
Рассказ из очень древнего номера «Вокруг света» вспомнился — «И наступила темнота», http://www.vokrugsveta.ru/vs/article/3578/
Автор языка предпочитает короткие имена символов, т.к. насколько я помню, название в три байта укладывается в одну CONS-ячейку, т.е. чисто из соображений экономии памяти. По-моему есть сторонние шаблонизаторы, но автор опять же предпочитает встроенные средства, для всех html-тэгов есть удобные функции типа (<ul> ...) и т.п. Используя шаблонизатор, теряем гибкость лиспа.
касательно «сложности» — хотелось бы заметить, что это самодостаточный код: здесь полное описание модели данных и связи между моделью и отображением в HTML. Никакой надобности в дополнительных СУБД, веб-серверах или шаблонах и т.п. И практически нет ограничений по объему данных, хоть миллионы записей, поиск тормозить не будет.
в Picolisp очень удобная генерация html. Плюс возможность смешивания высокоуровневых средств с низкоуровневыми на одной и той же странице
Подробностями не побалуете? Интересно было бы…
Для пробы и/или разработки вполне терпимо. Правда у меня собралось несколько странно. Видимо был невнимателен.

Оно вполне могло сломаться за эти годы: под Cygwin специально никто не тестирует. Будет время — тоже гляну.
web-магазин по продаже подержанных депутатов :-)

Ого, у вас уже депутатов продают. Шутку оценил :)
Под Win — можно либо в Cygwin (неск. лет назад пробовал — у Cygwin толком не работали файловые блокировки, а без них multi-user БД в принципе не юзабелен). Но лучше я бы советовал глянуть в сторону coLinux или andLinux.
На Linux:
1) Качаем и распаковываем куда-нибудь в ~/picoLisp/ свежую тестовую версию
2) Ставим gcc и с++
3) Если нужен 32-битный интерпретатор, то (cd src && make picolisp) (для обучения и использования в интранет этого достаточно).
Если нужно собрать 64-битный интерпретатор, то тут чуть посложнее — нужно или сначала собрать 32-битную версию, или иметь установленный Java-рантайм в системе, или (последний вариант), скачать software-lab.de/x86-64.linux.tgz и распаковать в src64/. Это объясняется тем, что 64-битный PicoLisp написан на «псевдоассемблере», из которого генерируется ассемблерный код под конкретную архитектуру процессора (на сегодняшний день поддерживаются x86-64, ppc64 и 64-битный эмулятор для x86). А для генерации как раз нужен работающий интерпретатор.
Если коротко, то в первый раз 64-битную систему пробуем собрать так:

$ (cd src; make)
$ (cd src64; make x86-64.linux)

Насчет красивых примеров — даже не знаю. Задачку надо какую-нибудь практическую. В планах еще PicoLisp tutorial перевести, но пока особого интереса к теме не наблюдаю
Нет, говорит, только читал немного Clojure-кода на rostettacode.org. Да и смысл ему разбираться в Clojure, если у него есть свой инструмент, который вполне устраивает практически для всех задач, вплоть до замены bash-скриптов?
кстати вот свежий пример, скриптинг на PicoLisp плюс web-клиент. Скрипт парсит перевод слова с сайта dict.leo.org. Насколько я знаю, автор PL для скриптов предпочитает использовать его вместо bash
вот что нашел по бенчмаркам: NeedForSpeed (свежее), database contest
Суть: еще в 2006-ом PicoLisp занял в 2ое место в конкурсе по СУБД немецкого журнала c't
Pico Lisp made the second place in the DB-Contest of c't magzine (c't
13/06, pp. 190)!… And got an extra medal for the «most original and
surprising program»

По http-серверам: был период, когда выяснилось, что PL быстрее, чем TPD2.

По поводу запуска процесса не соглашусь. Насколько знаю, PicoLisp использует fork запуска дочернего процесса, а у fork-а как раз небольшие расходы, поправьте если ошибаюсь.

Насчет больших БД: автор упоминал как-то об одном проекте с БД около 500Гб, так что с размерами тоже все довольно неплохо. Вообще одним из принципов числится «Unlimited» — размеры структур искусственно не ограничены.
1

Information

Rating
Does not participate
Location
Тюмень, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity