Валентин
Lucky
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
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
Snusmumriken
Totiks
С Новым Годом!
Totiks
Подскажите пожалуйста как из lua запустить внешнюю программу, может ли так интерпретатор lua?
Snusmumriken
Snusmumriken
No
Totiks
Спасибо сейчас буду пробовать
Lucky
это в том случае, если режим песочницы не включён.
Snusmumriken
Спасибо сейчас буду пробовать
Первое просто выполняет команду, второе - возвращает "файл", который можно читать, например построчно, если команда пишет текст в свой stdout.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
How to read file in lua ? @Snusmumriken
Lucky
В инстеде, например, он включён по умолчанию
Lucky
как в ловке с этим - не знаю
mva
Спасибо сейчас буду пробовать
os.execute - если тебе надо просто выполнить, р не надо получать вывод (просто вывести его).
io.popen - если надо получить вывод программы, если хочешь обработать его.
Snusmumriken
это в том случае, если режим песочницы не включён.
Ну, мы рассматриваем вариант базового интерпретатора, там всё включено. И в ловке, в openresty и в ещё куче мест — тоже включено, песочница — довольно редкое явление, это ещё заморачиваться нужно.
Totiks
Спаибо добрые люди, заработало, хе-хе, я очень доволен , новогоднее настроение стало еще новогоднее
Snusmumriken
Хмм, чот подозрительно
Snusmumriken
Удолил всех
NM
Прав да
Denis
они все капчу бота разгадали, а ты всё-равно удалил?)
Snusmumriken
Snusmumriken
Владелец ботов даже не заполнил биографию, и не удосужился использовать разные аватарки.
Mark ☢️
Ivan
Alxius
Ого а я думал куча народу пришла сейчас поболтаем)
🐅🤦♂️
Кто-нибудь пользовался либой https://github.com/LuaDist/lua-signal для установки обработчика сигналов? Хочу в консольном линукс скрипте повесить кастомный обработчик на сигнал получаемый по CTRL-C. Установил библиотеку через luarocks. Если делаю
local signal = require "signal"
то скрипт перестает отвечать на CTRL-C. Причем не важно, устанавливаю какие-то обработчики или нет. Никто не сталкивался?
Dmitry
Dmitry
что простое целесообразно сделать на lua?
как сайд-проект
Dmitry
но с пользой и перспективой на развитие проекта
Igor
Igor
Сейчас порылся на luarocks и нашёл Lua_Signal, не её установил?
Igor
Она там пихает свой SIGINT обработчик
Igor
Но работать всё равно должно, потому что обработчик просто luaL_error вызывает
Mark ☢️
https://luaposix.github.io/luaposix/modules/posix.signal.html
Igor
Я при обработке сигналов от системы использовал luaposix
Igor
Удобная штука с кучей функций
Igor
Igor
Работает отлично, можешь её попробовать
🐅🤦♂️
Спасибо, уже пробую.
NM
/spam
Mark ☢️
Ну уже б #rust брали, писать так писать https://t.me/openbsd/105
Lucky
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 глобальная переменая?