Andrey
--Ну карочь догадаетесь :) local greeting="С Новым годом!" print (greeting)
Snusmumriken
function foreach(src, func) local dst = {} for i, v in ipairs(src) do dst[i] = func(v) end return dst end charr = { 72, 97, 112, 112, 121, 32, 110, 101, 119, 32, 121, 101, 97, 114, 33 } print( table.concat(foreach(charr, string.char)) ) Ммм, функциональщина
Snusmumriken
Кстати, надо бы потребовать возможность запихивания функции в concat вторым аргументом, а то там только разделитель. С другой стороны, если оно и появится, то только в тех версиях луа которыми я не буду пользоваться.
Igor
Только чуть-чуть код concat'а править надо
Igor
А на счёт луёвых версий, я очень долго отказывался воспринимать любые версии младше 5.1, потому что Lua я в первую очередь полюбил за легковесность и за отсутствие бесполезных обвесов. Но потом, когда я начал плотненько работать с C API от Lua я заметил, API от 5.2+ является куда более удобным (compat'ы всякие подключать я вообще не хочу). В итоге сейчас использую Lua 5.3, но меня по прежнему морозит от того, что в стандартный набор вклинили utf8 функции структур и кучу другого мусора, который ну очень навряд ли понадобится. (Но за bitwise операции им отдельный респект, в 5.1 мне их не хватало)
Ivan
Sir - Снус?))) И почему он сам не потестит, work or not?
Highly Likely
To work or not to work
Highly Likely
That is the question
Totiks
С Новым Годом!
Totiks
Подскажите пожалуйста как из lua запустить внешнюю программу, может ли так интерпретатор lua?
Snusmumriken
No
Totiks
Спасибо сейчас буду пробовать
Lucky
это в том случае, если режим песочницы не включён.
Snusmumriken
Спасибо сейчас буду пробовать
Первое просто выполняет команду, второе - возвращает "файл", который можно читать, например построчно, если команда пишет текст в свой stdout.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
How to read file in lua ? @Snusmumriken
Lucky
В инстеде, например, он включён по умолчанию
Lucky
как в ловке с этим - не знаю
Snusmumriken
How to read file in lua ? @Snusmumriken
file = io.open(path_to_file, 'rb') text = file:read('*a') file:close()
mva
Спасибо сейчас буду пробовать
os.execute - если тебе надо просто выполнить, р не надо получать вывод (просто вывести его). io.popen - если надо получить вывод программы, если хочешь обработать его.
Snusmumriken
это в том случае, если режим песочницы не включён.
Ну, мы рассматриваем вариант базового интерпретатора, там всё включено. И в ловке, в openresty и в ещё куче мест — тоже включено, песочница — довольно редкое явление, это ещё заморачиваться нужно.
Totiks
Спаибо добрые люди, заработало, хе-хе, я очень доволен , новогоднее настроение стало еще новогоднее
Snusmumriken
Хмм, чот подозрительно
Snusmumriken
Удолил всех
NM
Прав да
Denis
они все капчу бота разгадали, а ты всё-равно удалил?)
Snusmumriken
Да
Snusmumriken
Владелец ботов даже не заполнил биографию, и не удосужился использовать разные аватарки.
Alxius
Ого а я думал куча народу пришла сейчас поболтаем)
🐅🤦‍♂️
Кто-нибудь пользовался либой https://github.com/LuaDist/lua-signal для установки обработчика сигналов? Хочу в консольном линукс скрипте повесить кастомный обработчик на сигнал получаемый по CTRL-C. Установил библиотеку через luarocks. Если делаю local signal = require "signal" то скрипт перестает отвечать на CTRL-C. Причем не важно, устанавливаю какие-то обработчики или нет. Никто не сталкивался?
Dmitry
что простое целесообразно сделать на lua? как сайд-проект
Dmitry
но с пользой и перспективой на развитие проекта
Igor
Сейчас порылся на luarocks и нашёл Lua_Signal, не её установил?
Igor
Она там пихает свой SIGINT обработчик
Igor
Но работать всё равно должно, потому что обработчик просто luaL_error вызывает
Mark ☢️
https://luaposix.github.io/luaposix/modules/posix.signal.html
Igor
Я при обработке сигналов от системы использовал luaposix
Igor
Удобная штука с кучей функций
Igor
Работает отлично, можешь её попробовать
🐅🤦‍♂️
Спасибо, уже пробую.
NM
/spam
Mark ☢️
Ну уже б #rust брали, писать так писать https://t.me/openbsd/105
Dmitry
консоль с метапарсером
> INSTEAD module to create games with text input этот?
Lucky
> INSTEAD module to create games with text input этот?
ага, только в виде отдельной консоли, чтобы подсказки работали так же и для системы, а не для игр. https://github.com/instead-hub/instead/tree/master/src/tiny
dmatseku
Привет, здесь можно задавать новичковые вопросы?
dmatseku
Или есть какой-то отдельный чат?
fgntfg
Можно задавать
fgntfg
все так делают
dmatseku
Сяб) так вот. Почему это i = 1 j = 20 while i < j do i++ end Бесконечный цикл?
Ivan
Зашел на демо https://www.lua.org/cgi-bin/demo , ввожу там i = 1 j = 20 while i < j do print(i) i=i+1 end и это не бесконечный цикл
dmatseku
да, не бесконечный, знач скину свой код, где он уходит в небытие function find_start(map, height, width) local res = coord; while map[res.y][res.x] ~= 'I' and res.y < height do res.x = 1; while map[res.y][res.x] ~= 'I' and res.x < width do res.x = res.x + 1; end res.y = res.y + 1; end if res.y == height then error("File has no start"); end return res; end внутри второго while
dmatseku
dmatseku
map - массив строк, вручную проинициализированный (временно), так что размеры и индексация в ней четкая
Первое условие не срабатывает, видимо.
dmatseku
наоборот
dmatseku
все срабатывает
Anonymous
Всем привет
dmatseku
даже когда res.x == 14 и width == 14, оно продолжает работать
А, стоп.
Anonymous
Ребята, подскажите пожалуйста, с помощью какой команды можно проверить существование папки?
dmatseku
и в прицнипе это уже не первый случай, просто предыдущие я на for заменил, так как там это было даже лучше
dmatseku
а тут хотелось бы while оставить
dmatseku
и чет мне кажется, что if в теле будет также бредить
fgntfg
@dmatseku добавь принтов
dmatseku
ну я отладчик подрубал, ну и принты могу
fgntfg
А что код вообще должен делать? I искать?
fgntfg
Мне кажется там где-то логическая ошибка прячется.
fgntfg
Попробуй степ бай степ пройти
fgntfg
У тебя coord глобальная переменая?