@ProLua

Страница 286 из 307
Snusmumriken
05.05.2018
17:24:57
Нет, ну почему? Когда начальник не пропускает говнокод, заставляет чётко всё писать, тогда по-другому и не попишешь.
"Начальники", в нашей стране, обычно нацелены на скорейшее получение бабла, соответственно, максимально быстрое внедрение фич, а какой ценой - это уже их не волнует : )

Revertron
05.05.2018
17:26:44
"Начальники", в нашей стране, обычно нацелены на скорейшее получение бабла, соответственно, максимально быстрое внедрение фич, а какой ценой - это уже их не волнует : )
Знаю, знаю... Это у нас просто ненормальный - разбирается в коде всех наших проектов, под винду, андроид, иос, макось, расширения под несколько браузеров и код всех бэкендов... И заставляет нас писать чётко :)

Yuriy
05.05.2018
18:15:48
Это всё решается грамотным код-ревью. Новичок поисправляет-поисправляет, а потом таки научится.
Очень сильно зависит от новичка. со мной вон один как пол года назад копипастил функции ради изменения одной строки, так и копипастит. Думать вообще отказывается...

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
https://habr.com/post/346892/
о объемная статья, с примерами и комментариями, годно)

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 Подскажите, как его использовать из другого файла? Что бы можно было строку в него передавать.

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
угу, понял)

пытается в глобальное обратиться

Страница 286 из 307