Snusmumriken
05.05.2018
17:24:57
Revertron
05.05.2018
17:26:44
"Начальники", в нашей стране, обычно нацелены на скорейшее получение бабла, соответственно, максимально быстрое внедрение фич, а какой ценой - это уже их не волнует : )
Знаю, знаю... Это у нас просто ненормальный - разбирается в коде всех наших проектов, под винду, андроид, иос, макось, расширения под несколько браузеров и код всех бэкендов...
И заставляет нас писать чётко :)
Yuriy
05.05.2018
18:15:48
Revertron
05.05.2018
18:18:03
Google
Yuriy
05.05.2018
18:28:30
Я согласен. Начальник лоялен.
?
06.05.2018
16:00:02
Где можно подробно почитать про таблицы и метатаблицы и метаметоды?
Snusmumriken
06.05.2018
16:08:59
Ммм
Даже не знаю
Philipp
06.05.2018
16:10:08
Если что, в чате в закрепе есть всё))
?
06.05.2018
16:10:44
понял и спасибо
Snusmumriken
06.05.2018
16:10:50
https://habr.com/post/346892/
?
06.05.2018
16:13:27
Snusmumriken
06.05.2018
16:13:43
Ну а то.
?
06.05.2018
16:15:04
пиши еще, что-то интересное)
Elmir
06.05.2018
16:47:00
/help@FailsBot
FailsBot
06.05.2018
16:47:00
/help@FailsBot
USAGE:
/help - prints this message;
/vzhuh [message] - do vzhuh;
/start - info about bot.
Google
?
06.05.2018
16:53:09
/vzhuh@FailsBot
FailsBot
06.05.2018
16:53:10
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'* ☆
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'* ☆
∧_∧
( ・ω・。)つ━☆・*。
⊂ ノ ・゜+.
しーJ °。+ *´¨)
.· ´¸.·*´¨) ¸.·*¨)
(¸.·´ (¸.·'* ☆ ddd@FailsBot
Vlad
06.05.2018
17:56:52
nani?
Vlad
06.05.2018
19:16:28
Omae Wa Mou Shindeiru
?
06.05.2018
22:31:34
?
Particle
07.05.2018
06:44:38
Ребят, нашел калькулятор https://pastebin.com/HFmKA780 Подскажите, как его использовать из другого файла?
Что бы можно было строку в него передавать.
Philipp
07.05.2018
09:51:16
А дальше используешь функции из него
Particle
07.05.2018
09:52:25
я прорбовал так
str = "1+1"
solve(str, a, b)
> attempt to call a nil value (global 'loadstring')
Писал прям внутри калькулятора
Philipp
07.05.2018
09:52:42
1) это не калькулятор
2) как ты писал прямо внутрь него?
Particle
07.05.2018
09:53:12
просто в конце добавил эти 2 строки
и запустил
Philipp
07.05.2018
09:55:26
А что по твоему должен делать solve?
Particle
07.05.2018
09:56:27
в том то и дело, что я не знаю
просто наугад ткнул
Philipp
07.05.2018
09:57:37
Что ты сделать пытаешься?
Particle
07.05.2018
09:58:30
я хочу, что бы можно было это использовать не из консоли, а передать стринг, к примеру "1+1/2", в качестве аргумента
Google
Philipp
07.05.2018
09:59:02
Так. А зачем тебе нужно передавать такое в качестве стринга?
Particle
07.05.2018
10:01:42
может я не совсем понимаю, что пишу, но мне нужно передавать в калькулятор задачу не через консоль. Что бы он хватал переменную с это й задачей и решал.
var = 1 + 2 - 4
запихать var в калькулятор надо
Philipp
07.05.2018
10:04:11
А само выражение в переменной откуда берется?
Particle
07.05.2018
10:04:34
я его буду туда заносить
Philipp
07.05.2018
10:04:50
А почему нельзя написать например просто
var = 1 + 1/2?
Particle
07.05.2018
10:05:19
я незнаю куда это писать, что бы он это взял и решил)
мне не надо через консоль
через консоль он видит, а переменную я незнаю куда ему передавать
Philipp
07.05.2018
10:06:22
Сформулируй, пожалуйста, ВСЮ задачу. Я вообще не понимаю что из чего должно получаться и почему на Луа)
Particle
07.05.2018
10:09:58
есть эта штука https://pastebin.com/HFmKA780 которая решает задачу, когда я запускаю её через нотпад++ и ввожу в консоль то, что надо решить.
Меня не устраивает, что мне приходится что-то вводить через консоль.
Нужно, что бы этот калькулятор хватал переменную из файла которая содержит задачу (не решенную) и решал её, возвращая ответ
он же принимает input через консоль, потому и предположил, что это стринг
Philipp
07.05.2018
10:19:39
Как у тебя выглядит ввод значений в консоль?
Particle
07.05.2018
10:20:56
всё. Я кажется понял, что это не эта штука мне решала задачи =/
спасибо)
Philipp
07.05.2018
10:21:36
=)
Есть один вариант делать то, что ты хочешь, но я не уверен, что я правильно тебя понял
Particle
07.05.2018
10:22:29
какой?
есть какой-нить модуль для этого?
Philipp
07.05.2018
10:23:18
По идее, вот такая функция должна тебе решать функции из строки, но я не тестировал и не уверен, какие-то моменты там надо будет учесть в зависимости от задачи
Google
Philipp
07.05.2018
10:24:56
function solver(str)
return loadstring('return ' .. str)()
end
Это вот очень грубая идея того, как в целом оно может работать
Я тут конечно не учитываю отлов ошибок, математические функции, и прочее-прочее
Particle
07.05.2018
10:28:35
Спасибо!
Philipp
07.05.2018
10:30:21
Просто то, что ты хочешь, в полном объеме реализуется в строк 100-150, но желания писать их прямо сейчас у меня нет)
@Snusmumriken
Snusmumriken
07.05.2018
10:34:32
Ууу
Philipp
07.05.2018
10:37:42
Помоги челвоеку коли можешь
Snusmumriken
07.05.2018
10:37:44
Если хочется написать нормальный калькулятор, хавающий строчки типа
'10 + 20 * (35 + 48)', то нужно курить преобразователь в обратную польскую запись, или читерить через loadstring, да. Но писать сейчас - слишком занят.
Particle
07.05.2018
10:39:08
спасибо, щас с лоадстрингом разберусь, может меня это устроит)
Philipp
07.05.2018
10:39:41
Но типа мой вариант не будет работать с приколами типа 1 + lg(2) + sin(30)
Там нужно либо использовать явный math.sin/math.log
Particle
07.05.2018
10:40:10
не, мне не нужны логарифмы и т.п. Мне простые 4 операции надо
Philipp
07.05.2018
10:40:23
Либо переименовывать все функции в короткий вариант
А, ну тогда лоадстринг должен работать
До тех пор, пока не начнешь делить на 0
Particle
07.05.2018
10:40:56
нулей вроде тоже не предвидится)
Philipp
07.05.2018
10:41:08
А вообще задачка отчасти странная
Snusmumriken
07.05.2018
10:41:19
Лоадстринг грузит строку как кусок кода (функцию). При ошибках парсинга (невалидный код) возвращает ошибку ещё функцией loadstring (nil, err), а при ошибках в процессе исполнения - на попытке вызвать как функцию (поэтому вызов через pcall/xpcall).
Particle
07.05.2018
10:45:40
а вот так оно никак не будет работать?
local a = 2
x = loadstring("a+10; return a")
print(x())
Google
Philipp
07.05.2018
10:47:13
Кстати любопытный вопрос. Не уверен.
Particle
07.05.2018
10:47:31
j!
заработало, когда локал убрал!
Philipp
07.05.2018
10:48:12
Потому что переменная уходит в глобал, который доступен отовсюду
Particle
07.05.2018
10:48:31
a = 2
x = loadstring("local b =a+10; return b")
print(x())
вот так заработало
Philipp
07.05.2018
10:48:55
Да, я понял
Particle
07.05.2018
10:49:24
Спасибо!)
а можно заставить принудительно искать в локальном пространстве?
Philipp
07.05.2018
10:59:15
do
local a = 2
local x = loadstring(“local b = a+10 return b”)
print(x())
end
Типа такого попробуй
Particle
07.05.2018
11:01:19
да, что бы искать не в глобальном. К примеру
b = 10
function z(b)
local b = 2
local a = 2
local r = loadstring("local c = a + b; return c")
return r()
end
print(z(b))
тут странно. Он видит только глобальную b, но не видит локальную, а вот a он видит локальную =/
Philipp
07.05.2018
11:03:23
Particle
07.05.2018
11:05:30
он мне пишет - анэкспектед симбол. Понять не могу в чем проблема
Philipp
07.05.2018
11:05:49
В кавычке
Скорее всего
Поменяй их
Particle
07.05.2018
11:06:22
угу, понял)
пытается в глобальное обратиться