Igor
https://lxd.readthedocs.io/en/latest/
Éminence grise
Так это к админам.
Éminence grise
Они в этом обычно на топе шарят
Éminence grise
Завтра у меня будет возможность спросить у топового админа лично. Если знает напишу.
Igor
наши админы просто виртуалки юзают и ансиблы
Igor
это мы разработчики используем докеры
Éminence grise
Мало платят. Высокий админ с кубером и девопс стоит дороже системного архитектора.
Igor
у нас просто многие сервисы фулстейт, да и докер они недолюбливают
Igor
сидят на древних центосах
Igor
может на lxc/lxd мы подружимся
Éminence grise
Готовить не умеют. Можно в OpenStack, но там еще веселее
Igor
это поделие у нас для тестовых серваков используется, регулярно валяется))
Igor
хотя может и не в самом опенстеке дело
Ayrat
let isEven x = x % 2 = 0
let rec isEven x = x = 0 || isOdd (x-1) and isOdd x = x = 1 || isEven (x-1) О - ОПТИМИЗАЦИЯ!11
Éminence grise
Кубер дался моему коллеге с senior linux admin и senior programmer с опытом в админстве > 10 лет и мозгами от бога отобрал почти месяц.. И он еще пока считает себя не мастером
Ayrat
Не перебор?
да это ж шутка
Éminence grise
Так и это шутка 😊
Vladislav
https://www.meziantou.net/stringbuilder-performance-pitfalls.htm
Рустам
Верю)
Рустам
А писать черным, писать красным.. Поверь через 15 лет смотреть забавно, когда я им вручную баланс свожу в 5 раз быстрее.
Shub
let rec isEven x = x = 0 || isOdd (x-1) and isOdd x = x = 1 || isEven (x-1) О - ОПТИМИЗАЦИЯ!11
сорвет стек. это как раз нехвосторекурсивная функция
Рустам
А что такое многополюсник? Просветите, плиз)
Рустам
ну если по верхам - то конечно не встретишь. а я вот точно знаю: глубоко внутри каждого круда сидит многополюсник. просто не все туда добираются.
Рустам
Последний вызов вроде приходится на "или", нет?
Shub
хвосторекурсивная
нiт. тебе для || надо вычислить значение справа
Рустам
Ага
Ayrat
нiт. тебе для || надо вычислить значение справа
всё фигня, она хвосторекурсивная. мне даже лень спорить
Shub
мне тоже :)
Ayrat
если хочешь, бомбани туда int.max
Éminence grise
если хочешь, бомбани туда int.max
Да она хвостовая. Но все равно расходная 😊
Shub
если хочешь, бомбани туда int.max
так уже. вычисляется
Ayrat
так уже. вычисляется
ну видишь, стек не бомбанул. А про время - это не ко мне
Ayrat
у тебя просто комп слабый
Ayrat
надо было в кластер закинуть
Ayrat
!!11
Éminence grise
Shub
какой дали. || - это функция по ходу, а не оператор
Shub
или оператор?
Ayrat
какой дали. || - это функция по ходу, а не оператор
он особый. с ленивой правой частью
Ayrat
как и &&
Ayrat
вот в | и & оба операнда надо жадно вычислить
Vladislav
Хочу жадно поспать вычислить но не получается(
Éminence grise
Называется OrElse и AndAlso
Shub
функция-обогреватель. жжет коленки уже, вырубаю
Рустам
он особый. с ленивой правой частью
Про ленивость логических операторов я знал, но как это сюда приурочить мне не понятно
Éminence grise
В принципе монадное вычисление на уровне компилятора
Рустам
Если левая часть даёт false он вычисляет правую часть, хорошо
Рустам
Как это позволяет оптимизировать рекурсию?
Ayrat
Если левая часть даёт false он вычисляет правую часть, хорошо
ну вот когда он вычисляет правую часть, она становится последней в стеке вызовов и вуаля - tail call
Рустам
А, понял, незачем уже применять оператор
Рустам
Так как ответ в правой части и есть ответ оператора
Рустам
Интересно
Éminence grise
Там проще на уровне ассемблера - либо джамп в конец либо возврат.
Éminence grise
Джамп в конец переноситься как вызов начала - он и так так работает, там внутри вызов того же адреса как колл.
Рустам
Интересно, видел это в ildasm, да
Éminence grise
ну и меняем на простой переход.
Éminence grise
На C# почти не работает почему то
Рустам
У меня логика работала так, сначала вычисляем левую, потом правую, затем применяем оператор
Рустам
Но это в случае арифметических операций
Рустам
В случае с логическим такое получается не нужно
Рустам
Ещё один факт в копилку
Éminence grise
На код высоких языков надо смотреть снизу..
Рустам
Без деталей реально сложно
Рустам
На C# почти не работает почему то
Это про ленивость логических операций или про рекурсию?
Éminence grise
Да не. Просто после 7-8 языков и 3-4 компиляторов, с опытом все просто. Кроме именования и валидности кешей.
Рустам
Хах)
Рустам
У меня F# 4-ый, значит ещё 3-4))
Éminence grise
Это про ленивость логических операций или про рекурсию?
Это компилер среде исполнения не помогает. От лени. 😊
Ayrat
Это компилер среде исполнения не помогает. От лени. 😊
Но здесь фарш тоже тейл кол не увидел. Тут жид оптимизирует. В сишарпе тоже сработает
Рустам
Понял
Ayrat
Что совсем, вроде должен был..
Вру, увидел IL_0008: tail. IL_000a: call bool _/A::isOdd(int32) IL_000f: ret
Éminence grise
1 и 2 - совсем ж... А вот с 3 можно бороться
Рустам
В F# с наименованиями достаточно просто))
Рустам
Или здесь тоже приветствуются длинныеОписательныеНаименования?