LINUX.ORG.RU

ура, наконец-то в Яре достигнут какой-то успех

 ,


0

5

Сбылась мечта идиота - я почти сделал из лиспа дельфи :) Кое-что недопилено, конечно, но в целом результат вполне прощупывается:

опр функ Foo(SYM -- :л:CL.SYMBOL)
тело
  л-печать(SYM.NAME())
  зап SYM.VALUE = 6
  л-печать(SYM.VALUE)
кно

Foo(цит(б))
Этот код транслируется примерно в такой код лиспа (на самом деле, дословно он генерируется далеко не такой, но если писать то же самое вручную, то был бы такой).
(declaim (ftype (function (SYMBOL ) t) |Foo| ))
(proclaim '(ftype (function (SYMBOL ) t) |Foo| ))

(defun |Foo| (SYM)
  (declare (type SYMBOL SYM))
  (PRINT (symbol-name sym))
  (setf (symbol-value sym) 6)
  (PRINT (symbol-value sym)))

(|Foo| (QUOTE |б|))

Итак, что я наконец-то получил? Конечно, пример маленький и не во всём показателен, но:

1. Общее количество букв уменьшилось ВДВОЕ.

2. Количество скобок уменьшилось более чем ВЧЕТВЕРО.

3. Количество повторений слова symbol уменьшилось в ШЕСТЬ раз. Символ здесь, как вы понимаете, моделирует какой-то defstruct - а структуры я пока что в Яр не впилил.

4. Лисп, чувствительный к регистру символов, без вертикальный чёрточек.

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

Вот, собственно, что я собирался сделать месяца за два летом 2015-го года. Надо было сразу перевести в следующую единицу измерения, и получилась бы правильная оценка трудоёмкости.

Что теперь я ожидаю от лисперов: я ожидаю, что они будут меня ругать. Написанный здесь код - это сумма множества предварительных этапов. Я публиковал свои решения на каждом этапе, и на каждом этапе меня ругали. Меня называли психом, блюб программистом и прочими другими плохими словами. Теперь настоящие лисперы должны просто лопнуть от злости. Хорошо лишь то, что их почти не осталось.

Давайте, начинайте называть меня психом и ламером, а я буду ржать над вами.

★★★★★

Последнее исправление: den73 (всего исправлений: 1)

начинайте называть меня психом и ламером

Допускаю, что ты не ламер.

thesis ★★★★★
()

1. Общее количество букв уменьшилось ВДВОЕ.

зап, кно, цит

Нахyй так жить.

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

У ТС, получается, куча лишнего синтаксиса.

В Паскале-подобных было бы (если целиком)

use Lisp.CL;

procedure Foo(SYM : SYMBOL);
begin
  print(SYM.NAME);
  SYM.VALUE := 6;
  print(SYM.VALUE);
end;

Foo(цит("б"));

У ТС библиотечные символы можно указывать по месту с именем библиотеки.

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

Я конкретно про эту конструкцию спрашивал:  — :л:.

--

= указание типа.

:л:

указание на внешнюю библиотеку. Обычно аналогичный синтаксис выглядит как «SYM : LISP.CL::SYMBOL».

monk ★★★★★
()

Ад из скобок и кириллица вместо кода, будто кто-то раскладку забыл переключить :D

Deleted
()

Теперь настоящие лисперы должны просто лопнуть от злости.

Теперь когда ЧТО? Куда смотреть то?

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

Факториал на странице проекта, страница проекта у меня в профиле.

Вообще это был не анонс, а вопль радости. Типа символ у меня пока нет, но на обёртку для лиспа Яр уже почти годится. В норме там не будет столько переключений раскладки.

Для избежания переключений я сделал свою раскладку, где латиница набирается с правым ALt и глобально поменял местами пробел и правый ALt. Правда, сделал я это в офтопике, в дебиане пока магию клавиатуры не освоил. Но думаю, что и в линуксе это можно.

В такой раскладке я уже месяца два печатаю почти всё время. В целом этот способ вполне даже хорош.

Но вообще я взял SYMBOL только потому, что в Яре пока нет ООП и структур. Поэтому пришлось взять то, что есть. Нормальный текст на Яре будет в основном в кириллице.

Насчёт того, что проекту Яр 9 лет - примерно столько лет я хотел сделать подобный проект. Тогда начал делать первые кусочки, но тогда это были просто утилитки для лиспа. Если бы я тогда всерьёз этим занялся, была бы бомба. С тех пор много воды утекло. Хорошо то, что направления, куда копать, я выбрал правильно, но за это время почти всё задуманное уже воплотили другие люди в других проектах. Хотя пока ещё небольшой зазор кое-где остался. В реальности интенсивной работы над проектом пока в сумме меньше года.

Спасибо за пожелания удачи!

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

Факториал на странице проекта, страница проекта у меня в профиле

Ну ладно с веб мордой может задача сложная, но сделать псевдобд на списках можно же?

Возможно, реализация стемминга была бы интересной задачей для демонстрации.

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

Нашёл пример факториала, спасибо.

Вообще раза с третьего даже становится понятно, что именно написано.

В целом не понимаю негатива. Такое ощущение что людей проклятый медведев/путин/обама/трамп заставляет писать на Яре. Или он вам на больную мозоль от переключения раскладки наступил?

Человек делает проект который ему интересен. Тратит личное время. Не претендует на переустройство мира.

Выйдет ли что нибудь или нет вопрос очень большой. Работы много.

Может быть язык найдёт применение.

Ещё раз творческих успехов автору!

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

Да тут нет особого негатива, и вообще обычно принимают более менее хорошо. Вопли про кириллицу, правда, всегда громкие. Ну что ж, и я раньше тоже считал, что кириллица и компьютер - вещи несовместимые. На самом деле это просто некий предрассудок, не более того.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от nihirash

Будет, всё будет, если мы до этого доживём.

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

Ну есть, конечно, негатив, но не тотальный. Хотя может быть, я просто не вижу, что пишут анонимусы, потому что они у меня в игноре :)

den73 ★★★★★
() автор топика

УУУУ!!!!

если Вонни прнс то Друзья упрлс все
polozz
()
Ответ на: комментарий от den73

ну, скажем половина, наверное, негатива там...

а так да, не тотальный, согласен. много интересных/ интересующихся и доброжелательных комментов.

AndreyKl ★★★★★
()
Ответ на: комментарий от no-such-file

Я не наркоман, а гений. Ты сам порассуди: печатать 10 пальцами, зажав правый альт, невозможно. А большие пальцы всё равно без дела простаивают. Кладёшь один из них на пробел и печатаешь.

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

Будет, всё будет, если мы до этого доживём.

С удовольствием взглянул бы, как доживет.

Я не наркоман, а гений.

Нркмн. По крайней мере, конструкцию «кно» нужно заменить на что-нибудь читаемее, хотя бы на слово «конец»

nihirash ★★★
()

Сказать, что твой императивный код на неЛИСПе выглядит короче чем императивный код на ЛИСПе (и любой ФЯ), это как сказать, что ты ходишь быстрее чем Ленин

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

у него там

кно - конец определения
кнe - конец если

привыкаешь на самом деле довольно быстро. другой вопрос что кажется несколько избыточным например :л:, кажется хватило бы л:. И может быть тело не нужно (или перед телом может идти какая то конструкция?).

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

конструкцию «кно» нужно заменить на что-нибудь читаемее, хотя бы на слово «конец»

Не нужно, но это я когда-нибудь потом объясню почему.

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

:л - это тоже фишка и тоже потом объясню. Без тела обойтись не получается (иначе потом придётся делать костыли).

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

А, уже объяснили. Я на самом деле шифруюсь, боюсь конкурентов. КОгда я задумывал этот проект я был сильно впереди. А теперь я почти ни на сколько не впереди.

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

(или перед телом может идти какая то конструкция?)

Да.

den73 ★★★★★
() автор топика

Да ладно ТСа травить, он небось просто хочет какой-нибудь грант распилить на импортозамещение.

anonymous
()
Ответ на: комментарий от Midael
пытаться {
  начать активность
  создать окно
  начать переписку с внешним миром

  поделить x на y
  если y = 0 -> паника
}
несмог(когнитивный_диссонанс ситуация) {
  если неразрешима ситуация -> истерика
}
наконец {
  разбить окно
  написать предсмертную записку
  прекратить переписку с внешним миром
  прекратить активность
  депрессия, апатия
  суицид
}



переход в режим патологоанатома...

Bad_ptr ★★★★★
()

Ура! Не нужно стало еще больше не нужно.

gemand
()
Ответ на: комментарий от den73

печатать 10 пальцами

большие пальцы всё равно без дела простаивают

Какой же ты гений? Ты мутант, у тебя кроме 2 больших, ещё 10 пальцев.

no-such-file ★★★★★
()
Ответ на: комментарий от den73

Я на самом деле шифруюсь, боюсь конкурентов.

Боишься конкурентов? По тупизне и засиранию всех лисп ресурсов до которых ты смог дотянуться у тебя нет конкурентов. Ты долбак номер один. Ever. EVER.

Когда я задумывал этот проект я был сильно впереди. А теперь я почти ни на сколько не впереди.

Задумывал?

Проект?

Впереди?

anonymous
()

Продолжайте ваши наблюдения^W изыскания.

anonymous
()

Лисп, чувствительный к регистру символов

(defpackage test (:use #:cl) (:modern t))

Работает не везде

anonymous
()

Давайте, начинайте называть меня психом и ламером, а я буду ржать над вами.

Объясните мазохисту, что тут не его блог

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

Я не наркоман, а гений

В палату его с Наполеоном

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

Он (хобот) родился мёртвеньким. Впрочем, в этом он идейно близок Яру.

redgremlin ★★★★★
()
Последнее исправление: redgremlin (всего исправлений: 1)
Ответ на: комментарий от meliafaro

Троллинг делом - это очень редкий вид троллинга, на который мало кто способен (ибо это сложнее традиционного кидания какашками). На ЛОРе таких, кажется, всего двое: автор пивас-студио и Андрей Столяров.

А у автора, по-моему, вполне серьёзно. Ну функциональный ЯП, да. Ну на русском языке, да. И что, собственно, такого? В Алголе-60 (которому лет больше, чем даже мне) на уровне публикаций допускалось использование национальных ключевых слов. Это сейчас у нас верховодят technical english nazi, которым обязательно всех под свои правоверные взгляды надо прогнуть...

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