Korsar
На самом деле остаются они, конечно, в пользу фирмы с учетом того, что в договоре с клиентами прописано округление до копеек)
Snusmumriken
Оки, в вашем случае кажись таки допустимо ))
Snusmumriken
ПОСОНЫ ФЛУДИЛЬНЯ https://t.me/ProLuaSnooze
Arslan
Лол
Arslan
Сделай группу
Arslan
Это канал называется
Snusmumriken
Ой блин
Arslan
Где писать может только одмен
Leon174
Где писать может только одмен
Именно это он и хотел. 😁
Snusmumriken
Уже работает
Johny
Egor точно наш. Это джаваскриптер небось. Он работает в месте, где активно анализируются долги народа и организаций.
Aiwan \ (•◡•) / _bot
Допустимо ящетаю
а если расчёты для космоса это? эти 2е еденички с миллиона могут сыграть злую шутку с человеком/человечеством
Johny
Например.
Anton
Простите за баян, я просто оставлю это здесь: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
Anton
(Это ответ, почему 0.30000...04 не проблема)
Highly Likely
(Это ответ, почему 0.30000...04 не проблема)
Смотря как посмотреть. Скорее, что это решаемая проблема :-)
Anton
Смотря как посмотреть. Скорее, что это решаемая проблема :-)
Ну (и я прошу прощения за занудство), я бы смотрел с точки зрения стандарта IEEE 754.
Highly Likely
Ну (и я прошу прощения за занудство), я бы смотрел с точки зрения стандарта IEEE 754.
А, прошу прощения, я контекст обсуждения упустил. Почему-то подумалось, что это просто случайный вброс про 754 :-)
K
Парни подскажите рабочий инструмент для создания на lua клиента для https запросов? для простого http есть luasocket. Но он заморочно работает с https судя по описанию.
Anonymous
Извините за оффтоп, просто тут много умных людей, так вот: кто шарит в джейлбрейках на айфоне прошу напишите в лс, проблема возникла небольшая.
K
Спасибо.
K
Еще вопрос. Как на Ubuntu поставить LuaRocks последней версии сразу из пакетов? На сайте пишут только про полную сборку. В оф. пакетах убунты только древняя версия. поиск по тырнета не помогает.
Snusmumriken
Ну, просто так валяющихся готовых пакетов нигде нет ))
Snusmumriken
И что это значит? Правильно, собираем из исходников )))
Snusmumriken
Благо исходники на луа. Скачай-юзай.
K
Вы правы. Придется так.
K
Помогите разобраться. Поставил через LuaRocks модуль Lua-Http. Пробую создать клиента и сделать запрос к сайту. Клиент создается. Запрос делается, Ответ приходит. Все хорошо. Но как задать свой User-Agent в http-запросе понять не могу. Подскажите если знаете?
Александр
Есть какие-нибудь эквиваленты dostring/loadstring, которые сами возвращают результат последнего выражения? Чтобы вместо return 1 писать 1, а вместо f(); g(); return h(); писать f(); g(); h();?
Igor
В каком смысле?
Александр
loadstring вернёт результат последнего выражения, даже если там не написан return?
Александр
самописная реализация меня вполне устроит, но например добавление return в начале выражения не решит задачу, т.к. в строке может быть нетривиальный код
Igor
Если loadstring не возвращает чанк - assert заэррорит, если он вернёт чанк, то он выполнится со всеми аргументами, которые были переданы в executestring и вернёт всё, что вернул твой чанк
Igor
Нет.
Igor
Lua так не делает
Igor
Для этого тебе нужен tonumber
Александр
ну ё моё..
Igor
Или чанк с кодом 'return 1'
Александр
Или чанк с кодом 'return 1'
моё первое сообщение было - как избавиться от написания return в чанке. задача: я хочу сделать CLI интерфейс, чтобы на каждую команду пользователя он видел результат выполнения, но в данный момент ему приходится писать return перед каждой командой (или перед последним выражением в команде), чтобы видеть не nil
Igor
У меня было место, где я частично решал эту проблему, заменяя "=" на "return "
Igor
loadstring(str:gsub('^(=)', 'return '))
Highly Likely
“1” — ничего не возвращает
Александр
“1” — ничего не возвращает
"1" выглядит странно, но напишем function f() return 1 end и желать, чтобы запись f() возвращала как и return f() уже не так странно
Highly Likely
"1" выглядит странно, но напишем function f() return 1 end и желать, чтобы запись f() возвращала как и return f() уже не так странно
Нет, это всё еще странно. Есть вполне определенная семантика, у которой есть логический смысл. Что должно вернуть f() “1” “2” end?
Highly Likely
Ну или я не так понял, что нужно получить на выходе
Александр
на выходе нужен механизм, который позволит без ключевого слова return возвращать результат последнего выражения, поданного на вход интерпретатору. 1 -> return 1 f() -> return f() f(); g() -> f(); return g() for i = 1, 5 do end -> return nil но я уже понял, что это просто противоречит грамматике языка, так что вопрос снимается. пользователи CLI будут страдать.
Какая-то встроенная в программу консолька с Lua?
В Мунскрипте возвращается результат последнего выражения, хотя, вряд ли он подойдёт.
Александр
Какая-то встроенная в программу консолька с Lua?
именно, просто консоль. крайне удручает для просмотра значений писать return val, хотя можно было бы обойтись val
Snusmumriken
Александр
=val Оно автоматом заменяет в repl'е первый символ равенства на ретурн.
у меня не нативный репл, а самописный через dostring
Александр
но это уже @igor2608 советовал, да, спасибо
Snusmumriken
у меня не нативный репл, а самописный через dostring
Тогда ты можешь туда дописывать всё что угодно )) Я ещё будучи студиозусом делал калькулятор, который автоматом пишет ответ пока ты пишешь выражение.
Snusmumriken
Типа такой поправился чуть-чуть — и ответ для текущей строки тут же изменился. Или изменил переменную выше.
Александр
Тогда ты можешь туда дописывать всё что угодно )) Я ещё будучи студиозусом делал калькулятор, который автоматом пишет ответ пока ты пишешь выражение.
могу, но просто взять и распарсить строку, найдя в нём последнее выражение с точки зрения всей грамматики языка не кажется мне тривиальной задачей
Александр
очевидно, я не хочу писать луа парсер с нуля
Snusmumriken
Правда, после этого будет стоять задача "собрать код обратно".
Александр
Правда, после этого будет стоять задача "собрать код обратно".
не, я понимаю, что можно взять готовые библиотеки :) просто это выглядит оверинжинирингом для такой относительно простой задачи
Можно попробовать найти последнюю точку с запятой не внутри кавычек или коммента и вставить return после.
Александр
Пардон, а у тебя там мультилайн-dostring?
два режима - однострочный и мультилайн (построчно собираем, потом выполняем)
Snusmumriken
Блен, надо вспомнить что я там делал у себя, там был довольно простой алгоритм
Snusmumriken
По моему, вплоть до тупого дублирования: 1. Лоадстрингаем с наличием ретурна в самом начале, если что-то вернуло — выводим ответ 2. Если не сработало — лоадстрингаем без ретурна Но там построчная фигня, и пересчитать результат несколько проще.
Snusmumriken
Можно но впадлу и медленно. Лоадстринг тащит.
Highly Likely
Можно но впадлу и медленно. Лоадстринг тащит.
Ну, медленный разве что потому что поверх другого интерпретатора
Snusmumriken
А то ещё в венгерскую нотацию переводить, потом калькулировать..
Snusmumriken
Чтобы получить то же самое. То есть, для общего обучения как бы ок, а для практического применения — уж лучше прям сам код исполнять, если на безопасность пофигу.
Snusmumriken
как вариант, по крайней мере самые простые случаи типа "1" или "val" разрулит (как и любой одиночный стейтмент)
При дёргании функций, может приводить к не очень приятным результатам, типа вот у нас ошибочный код: > foo() + "lalala" + {12345} Функция foo всё равно вызовется, а если это процедура — может привести к неприятным последствиям в виде двойного вызова с сайд-эффектами.