Size: a a a

Clojure — русскоговорящее сообщество

2019 June 10

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
У меня была как-то идея сделать транслятор подмножества Clojure в Nix и обратно (там функциональный язык с иммутабельными структурами данных, но с совершенно диким синтаксисом).
источник

DF

Dima Fomin in Clojure — русскоговорящее сообщество
Mikhail Gusarov
У меня была как-то идея сделать транслятор подмножества Clojure в Nix и обратно (там функциональный язык с иммутабельными структурами данных, но с совершенно диким синтаксисом).
зачем, если есть guix/guile?
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
Linux-дистрибутив настолько полезен, сколько пакетов в нём есть. В guix их мало, и они старые. В NixOS их больше и они свежее. Кроме того, в guix GNU головного мозга, и тот же Linux там обкорнанный, без non-free блобов (= бесполезен).
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
Mikhail Gusarov
У меня была как-то идея сделать транслятор подмножества Clojure в Nix и обратно (там функциональный язык с иммутабельными структурами данных, но с совершенно диким синтаксисом).
На вкус и цвет, конечно, но мне nix вполне синтаксисом нравится. Guix со схемой для меня выглядит куда многословнее и кривее
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Алесь Гузик
На вкус и цвет, конечно, но мне nix вполне синтаксисом нравится. Guix со схемой для меня выглядит куда многословнее и кривее
многословнее - да, но хотя бы схема, а не очередной нескушный язык
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
кложа была бы компактнее, конечно
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
edn, точнее
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
@alesguzik . X or Y классный оператор. { inherit X } тоже.
источник

АГ

Алесь Гузик in Clojure — русскоговорящее сообщество
Мне нравится что оно по большей части почти json, только с примесью ленивых функций. Очень декларативно всё получается, и при этом гибко. Лисп хорошо когда макросы хочется, но в никсе я не натыкался на что-либо повторяющееся, которое без макросов не убрать.
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
В концевых формулах - да, а стоит полезть чуть дальше, как вываливаются все неприглядные плохо понимаемые кишки.
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
Макросы в языках с нормальным порядком применения аргументов не нужны, факт
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
Всё равно мне кажется, что здесь избыточно синтаксиса:
mkMeta = args: mkOption (builtins.removeAttrs args [ "feature" ] // {
   type = args.type or (types.uniq types.bool);
   default = args.default or false;
   description = args.description or ''
     Whether to ${args.feature} while evaluating nixpkgs.
   '' + ''
     Changing the default will not cause any rebuilds.
   '';
 });
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Тут прямо наезд на динамику
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Говорят, нельзя корректные программы делать без soundness type system
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Там трэд длинный, можешь обсудить что оттуда
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
Оператор // для объединения ассоциативного массива, функция builtin.removeAttrs для удаления ключей из ассоциативного массива, оператор . or для получения значений из ассоциативного массива.
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
@lisovskyvlad Можно, только это сложнее проверять.
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Mikhail Gusarov
Всё равно мне кажется, что здесь избыточно синтаксиса:
mkMeta = args: mkOption (builtins.removeAttrs args [ "feature" ] // {
   type = args.type or (types.uniq types.bool);
   default = args.default or false;
   description = args.description or ''
     Whether to ${args.feature} while evaluating nixpkgs.
   '' + ''
     Changing the default will not cause any rebuilds.
   '';
 });
Это что такое ?
источник

MG

Mikhail Gusarov in Clojure — русскоговорящее сообщество
@lisovskyvlad Это язык Nix. Что интересно, единственный относительно широко использующийся язык с персистентными структурами данных, помимо Clojure (по крайней мере, из тех, что я нашёл, а я искал).
источник