(no subject)
Sep. 19th, 2018 08:50 amЩо значить вдале інженерне рішення. Lisp, від початку, підтримує можливість розширювати себе різними парадигмами програмування. Якщо брати ООП, то стандарт зараз це CLOS, вєлікій і ужасньій. Але є й інші реалізації. Flavors - одна з перших реалізацій ООП початку 80-х, підтримується й досі. Втім, реалізації були ще раніше, наприклад, LOOPS, за яку я нічого не нарив і більш ранні, створені ще у 60-х.
no subject
Date: 2018-09-19 07:02 am (UTC)no subject
Date: 2018-09-19 08:54 am (UTC)Залежить від реалізації, але не обов'язково. Якщо говорити про CommonLisp, то є доволі швидкі, десь ± як Java. З відкритих найшвидший SBCL, хоча там навіть sse оптимізацій не реалізовано.
Деякі Scheme компіляються у C.
В любому випадку, швидкість прийнятна. Навіть emacs lisp, який я використовую, як мову загального призначення, швидший за популярний Python.
no subject
Date: 2018-09-19 10:05 am (UTC)no subject
Date: 2018-09-19 12:04 pm (UTC)Взагалі, ліспи не так щоб дуже популярні. Але мені подобається, хоча можливості вимагають самодисципліни. Наразі, для CL у мене задач нема, точніше задумки є, але в процесі реалізації те, що для лісп-частини конче необхідно. А для text processing я використовую emacs. Виявилося, що найбільша моя програмістська помилка була використовувати його лише як IDE (нє, він тут очєнь і очєнь), а не як платформу. Не без косяків, але вибір мегавдалий і замінив Python.
Зробити гроші... Ну як сказати... Якщо шукаєш роботу на сайтах, то складно, особливо в Україні. У москалів щось проскакує, але рідко. В США/Канаді теж не так часто як хотілося б. Якщо свій власний бізнес, то залежить від задач і наскільки багато не реалізовано на інших мовах. Але успішні приклади є. Я рекомендую подивитися на це https://tech.grammarly.com/blog/running-lisp-in-production Я сам користуюсь цим сервісом і дуже задоволений. Це наші співвічизники, між іншим.
Ще можна говорити про прототипи і про DSL. Тут він у мегавдалий.
зацінити красу можеш http://www.gigamonkeys.com/book/ Там з 2-ї глави тобі демонструють SQL-like базу даних.
Зверни увагу на книги цього дядька
https://markwatson.com/books/ https://leanpub.com/u/markwatson По жабі і лішпу були у мережі типа як у відкритому доступі.
no subject
Date: 2018-09-19 05:50 pm (UTC)care to elaborate?
я кожного разу як намагався, то повертався до рубі
якась елементарна операція типу $stdin.read у рубі, в імаксі виглядає
як пародія на мошину руба голдберга
no subject
Date: 2018-09-20 01:47 pm (UTC)Якби се було так, то не було б 100500 плагінів до нього.
>пародія на мошину руба голдберга
Тому, що ти (за посиланням твій пост?) намагаєшся використовувати UNIX-way. У ліспові по-іншому. Ти працюєш з текстовим редактором, відправляєш код у REPL. Тому у ліспові купа маленьких простих функцій, які переназначаються за необхідністю. В emacs, звісно, що є REPL в який ти посилаєш функції з, того ж *scratch*. Якщо тобі хочеться командного рядка, то є eshell, який поєднує s-вирази і звичайні команди. Ось ця трійця і є кілер-фічою emacs.
Ось як би я робив це (звиняй за quick and dirty, це лише демонстрація принципа).
;; Десь у emacs, наприклад у *scratch*, хоча можна у REPL, створю неформатований html
(setf some-text "<p>
hey, <i>
what's up</i>?
</p>")
;; C-x C-e Відправив у внутрішній lisp
;; *scratch*
(defun my-indent-file (filename)
  (progn
    (set-buffer (find-file-noselect filename))
    (mark-whole-buffer)
    (indent-region (point-min) (point-max))
    (save-buffer)
    (kill-buffer (current-buffer)))) ;; C-x C-e
(defun process-files (dir ext)
  (cl-dolist (file-name (directory-files dir nil ext))
    (my-indent-file file-name))) ;; C-x C-e
;; Тестуємо
;; З eshell, неформатований текст. Зверни увагу, на суміщення s-виразу і звичайного шелу
$ echo $some-text > 1.html
~ $ cat 1.html
<p>
hey, <i>
what's up</i>?
</p>
~ $ process-files ~ html
~ $ cat 1.html ;; Форматований текст
<p>
  hey, <i>
    what's up</i>?
</p>
no subject
Date: 2018-09-20 08:47 pm (UTC)*scratch*, до речі, мене ніколи не подобався, 1ше шо я роблю з іліспом це M-x ielm
no subject
Date: 2018-09-20 01:53 pm (UTC)1 - передати у змінну
~ $ cat 1.html >#' var; do-something $var
або
~ $ cat 1.html >#' var; (do-something $var)
2 - підняти пайп у REPL:
ELISP> (shell-command-to-string "echo hello")
"hello\n"
no subject
Date: 2018-09-20 01:57 pm (UTC)no subject
Date: 2018-09-20 02:43 pm (UTC)no subject
Date: 2018-09-20 08:50 pm (UTC)no subject
Date: 2018-09-21 05:29 am (UTC)Та хто ж споре, як під руками підходящий форматер, то так.
Тільки чому ти спочатку приводиш незадоволення псто про те, як відформатувати текст у emacs через bash, а потім кепкуєш, що тобі показали як це зробити більш прямо безпосередньо у emacs?
І порівнював emacs я не з мегарульозним bash-ом, а з python, який мені колись стало ліниво розвертати.
no subject
Date: 2018-09-21 06:47 am (UTC)chill out, mate
за eshell приклади--дякую
вже познущатися над імаксом не можна
у мене з цим редактором, як кажуть гамериканці, a love-hate relationship
no subject
Date: 2018-09-21 07:34 am (UTC)>за eshell приклади--дякую
У статті нема, але є щє insert at point in buffer
ЗІ Колись, ще у часи Win XP, я рятувався саме eshell-ом бо вбудований cmd, хоча і досить потужний але страшенно незручний, а від PowerShell хотілося втікти. Кажуть, що віз і досі там і до зручності мого улюбленого XTerm-у ще далеко.
no subject
Date: 2018-09-19 10:05 am (UTC)