Size: a a a

2020 September 03

AE

Alexey Egorov in Lisp Forever
Ага, вижу.
источник

AE

Alexey Egorov in Lisp Forever
Valeriy L
а в схеме частичное применение из коробки?
SRFI 26, кажется.
источник

VL

Valeriy L in Lisp Forever
лан
источник

VL

Valeriy L in Lisp Forever
нам остается только александрию импортить
источник

AE

Alexey Egorov in Lisp Forever
Valeriy L
нам остается только александрию импортить
Аминь.
источник

AE

Alexey Egorov in Lisp Forever
Алсо что ты на коммоне пишешь?
источник

AE

Alexey Egorov in Lisp Forever
Valeriy L
нам остается только александрию импортить
Или свои макросы писать.
источник

VL

Valeriy L in Lisp Forever
Alexey Egorov
Алсо что ты на коммоне пишешь?
пока по мелочам
источник

AE

Alexey Egorov in Lisp Forever
(defmacro bind (fun &rest args)
 "Bind fun to provided args positionally.
Args named _ remain unbound and should be provided in
subsequent funcall, e.g:
  > (funcall (bind + 1 _ 2 _) 4 5)
  12"
 (let ((new-arglist (list))
       (lambda-arglist (list)))
   (dolist (a args)
     (if (string= (format nil "~A" a) "_")
         (let ((var (gensym)))
           (push var new-arglist)
           (push var lambda-arglist))
         (push a new-arglist)))
   `(lambda (,@(nreverse lambda-arglist))
      (,fun ,@(nreverse new-arglist)))))
источник

AE

Alexey Egorov in Lisp Forever
Вот такое писал в одном своём проекте.
источник

VL

Valeriy L in Lisp Forever
Alexey Egorov
(defmacro bind (fun &rest args)
 "Bind fun to provided args positionally.
Args named _ remain unbound and should be provided in
subsequent funcall, e.g:
  > (funcall (bind + 1 _ 2 _) 4 5)
  12"
 (let ((new-arglist (list))
       (lambda-arglist (list)))
   (dolist (a args)
     (if (string= (format nil "~A" a) "_")
         (let ((var (gensym)))
           (push var new-arglist)
           (push var lambda-arglist))
         (push a new-arglist)))
   `(lambda (,@(nreverse lambda-arglist))
      (,fun ,@(nreverse new-arglist)))))
ахуенно
источник

VL

Valeriy L in Lisp Forever
Valeriy L
пока по мелочам
начал я короче писать queue для shell команд на лиспе. чтобы можно было менять приоритет и тд (мне для закачек youtube-dl нужно). Почти дописал, но потом внезапно нашел task spooler и желание дописывать отпало :C
источник

ДК

Дмитрий К in Lisp Forever
Alexey Egorov
@nin_jin, а что есть по tree из либ?
Есть либы под JS/TS иD, есть подсветка синтаксиса и есть язык view.tree применяемый во фронтенд фреймворке: https://mol.hyoo.ru/#app=view.tree/compile
источник

ДК

Дмитрий К in Lisp Forever
Alexey Egorov
@nin_jin, ты занимаешься кэндо?
Было дело. Ну не совсем кэндо, конечно.
источник

YK

Yaroslav Khnygin in Lisp Forever
Sokolov Andrew
(func $fact (param $x i64) (result i64)
   (if $x (result i64)
     (i64.eqz
       (local.get $x))
     (then
       (i64.const 1))
     (else
       (i64.mul
         (local.get $x)
         (call $fact      
           (i64.sub
             (local.get $x)
             (i64.const 1)))))))
слышал, что в это чудо не стали добавлять goto, потому что разработчикам хрома слишком сложно его поддерживать в своём JS-движке
источник

YK

Yaroslav Khnygin in Lisp Forever
в лисподискорде кто-то подробно объяснял эту историю
источник

YK

Yaroslav Khnygin in Lisp Forever
Major WASM-supporting browser is also the one that keeps WASM behind - namely Chrome, which has to transpile WASM to sorta-JS to run it, which also makes for some very messy code as it can't represent goto without making the whole code block into a huge case statement
источник

YK

Yaroslav Khnygin in Lisp Forever
essentially what happens is that V8 (so node.js as well) represents code essentially in JS, it has no other bytecode format or anything, so in order to use JIT you need to transform code into JS, which requires special transform that replaces jumps etc with something that can be represented in plain JS
источник

YK

Yaroslav Khnygin in Lisp Forever
потрясающе
источник

χλ

χоρоший ☽☽☽ λисuчко... in Lisp Forever
Alexey Egorov
SRFI 26, кажется.
А как это с вараргами сочетается?
источник