█▄█▄█
дак я хочу снести луа и поставить по новой
mihacooper [МСК -2]
отож
добавь альтернативу новую
█▄█▄█
а пурж/ремов не удаляет
█▄█▄█
у меня папка 5,1 пустая
█▄█▄█
че смысл на неё ссылку добавлять
mihacooper [МСК -2]
поставь lua5.1, если снес уже, и вызови c
mihacooper [МСК -2]
sudo update-alternatives --install /usr/bin/lua lua-interpreter /usr/bin/lua5.1 10
mihacooper [МСК -2]
а потом можно выбирать между альтернативами
█▄█▄█
█▄█▄█
не, все равно не заводится
█▄█▄█
оно ищет в папках 5,1 а у меня тока 5,2 папки
mihacooper [МСК -2]
ты по всей видимости через luarocks ставил?
█▄█▄█
да по мануалу с гитхаба
█▄█▄█
я и через install.sh ставил и потом руками все вбивал https://github.com/group-butler/GroupButler
█▄█▄█
все что я понаставил лежит тут
Саша
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> print(table.unpack({"Sun", "Mon", "Tue", "Wed"}, 2, 3))
stdin:1: attempt to call field 'unpack' (a nil value)
stack traceback:
stdin:1: in main chunk
[C]: ?
да почему у меня ни один пример не работает
mihacooper [МСК -2]
Саша
мой косяк, мне казалось книжка по луа 5.1. спасибо
Саша
я, эм, я еще спросить кое-что. a = {1, 2, nil, 3, 4, nil} не является правильной последовательностью, так? тогда почему #a правильно отрабатывает?
mihacooper [МСК -2]
он вренет 2, то не так?
Саша
он вернет 6
Саша
> a = {1, 2, nil, 3, nil, nil, 4}
> print(a)
table: 0x5629e06b8be0
> print(#a)
7
Саша
Саша
то есть такое поведение это круто но не гарантируется?
ㅤ
ㅤ
На другом примере может не сработать.
Саша
значит не гарантируется. понял, спасибо. я думал может просто не так что-то понял
ㅤ
Вроде, оно: http://www.lua.org/source/5.3/ltable.c.html#luaH_getn
ㅤ
Двоичный поиск по части-массиву, если она не заполнена, а иначе заглянем в часть-хэштаблицу. Например, в двоичном поиске можно пропустить "дырку" в массиве, а можно попасть на неё.
Саша
Это мне? Если мне то я гляну, спасибо
█▄█▄█
█▄█▄█
http://www.lua.org/ftp/ я уже и из исходников делал, там нет таких файлов которые нужны
█▄█▄█
и через докер все тянул по мануалу как на гите написано, все равно болт
█▄█▄█
https://github.com/group-butler/GroupButler/pull/301
█▄█▄█
говорят юзай луа 5.1
Snusmumriken
Кому-нибудь нужна простейшая парсилка аргументов командной строки?
Snusmumriken
Ну кароч вот она ))
local function arg_parce(arg)
local res = {}
local i = 1
while i <= #arg do
-- check this param is key (starts with / or -, has another symbols)
local isKey, key = arg[i]:match('^([/-]+)([^/-]+)')
if isKey then
-- check param after this key is 'value' (not key)
local isValue = (arg[i + 1] or ''):match('^([^/-].*)')
if isValue then
i = i + 1
end
res[key] = isValue or true
else
res[#res + 1] = arg[i]
end
i = i + 1
end
return res
end
>luajit C:\bin\lua\tail.lua sudo apt-get install luarocks -silent /LUA_DIR BLA_BLA
Parced arg: { "sudo", "apt-get", "install", "luarocks",
LUA_DIR = "BLA_BLA",
silent = true
}
Snusmumriken
Кстати, надо ещё на "=" заточить, шоб был key-value.
ㅤ
https://github.com/mpeterv/argparse
Тут есть.
Snusmumriken
Ну да, оно такое есть, прост я хотел нано-функцию которая делает схожую работу, а не монстра на 1.5к строк : )
Lucky
👍
Котян
Всём привет
Саша
здарова костян
Котян
Вопрос далеко не по теме. Язык lua. Как вывести через for на экран таблицу (индекс значение) используя table.unpack. знаю что эта функция возвращает количество элементов, но как задать границу? Во пример кода (не работает):
function non(t)
arg = table.pack(t)
for key = 1, arg.n value do print (key, value) end
end
A = {}
A[1] = 45
A[2]= 466
non(A)
Котян
Table.unpack
Котян
В задании указано
Котян
Напишите функцию, которая получает массив и печатает все элементы этого массива. Рассмотрите преимущества и недостатки использования table.unpack в этой функции.
Котян
Такое вообще возможно? С помощью pairs сделал )
Котян
(только начал учить) ток ща заметил, что чат PRO.lua
ㅤ
unpack работает только с массивами, и нет, она возвращает не количество элементов, а все элементы таблицы, т.е. можно написать local x, y, z = table.unpack(t), и если там три элемента, они лягут в x, y, z. Если больше — извините, не влезло и потерялось.
ㅤ
Ты можешь передать все элементы в какую-то функцию вроде:
local function do_something(...)
-- do something with ...
end
do_something(table.unpack(t))
Saphire
ㅤ
... — некая магическая сущность, которую можно или упаковать обратно в таблицу вот так: {...}, или передать в функцию в качестве аргументов. Есть функция select, которая может узнать количество элементов в ... и вытащить n-й.
Saphire
Если ВСЕ элементы
Saphire
...ну или рекурсией
ㅤ
Зойчем капсуешь?
Saphire
(ужасы конечно в данном случае)
ㅤ
Можно рекурсией.
Котян
Хм, спасибо. Попробую сделать
ㅤ
local function what_a_nice_weed_you_smoke(x, ...)
if select("#", ...) == 0 then -- проверяем, что в ... пусто, чтобы в итоге таки выйти из рекурсии
return
end
print(x)
what_a_nice_weed_you_smoke(...)
end
Saphire
Saphire
В таких случаях тупо pairs спокойно влепить можно
Saphire
Рекурсия не бесплатна.
Котян
Просто задание в книге. Привык каждое выполнять
Saphire
А там текста перед ним нет? :Р
Саша
там задание будет на написание функции получения всех комбинаций рекурсивно. как сделаешь напиши мне
Mikhail
Алло, 4-й класс есть?
https://youtu.be/JB-8Bc0plU4
vitaly
добрый день страна
XROGi
Скажите, а есть примеры написания бота для телеграмма на луа с использованием механизма телеграмм прокси?
Korsar
Что? Телеграм-боты? Их еще кто-то пишет? 🙂
Саша
их очень и очень много пишут
Саша
каждый второй на канале новичков питона приходит с вопросами по написанию тг ботов
Korsar
Интересно зачем 🙂
Саша
хотя даже 2 из 3 наверное
Korsar
Korsar
Я-то думал про серьезные вещи речь )
Саша
еще как серьезные. там асинк, многопоточность, все дела