Size: a a a

2020 May 30

АК

Александр Караев... in pro.lua
ну ё моё..
источник

I

Igor725 in pro.lua
Или чанк с кодом 'return 1'
источник

АК

Александр Караев... in pro.lua
Igor725
Или чанк с кодом 'return 1'
моё первое сообщение было - как избавиться от написания return в чанке.
задача: я хочу сделать CLI интерфейс, чтобы на каждую команду пользователя он видел результат выполнения, но в данный момент ему приходится писать return перед каждой командой (или перед последним выражением в команде), чтобы видеть не nil
источник

I

Igor725 in pro.lua
У меня было место, где я частично решал эту проблему, заменяя "return " на "="
источник

I

Igor725 in pro.lua
loadstring(str:gsub('^(=)', 'return '))
источник

CP

Companion Philipp in pro.lua
Александр Караев
моё первое сообщение было - как избавиться от написания return в чанке.
задача: я хочу сделать CLI интерфейс, чтобы на каждую команду пользователя он видел результат выполнения, но в данный момент ему приходится писать return перед каждой командой (или перед последним выражением в команде), чтобы видеть не nil
Технически, то, что ты хочешь — не особо нормальное поведение
источник

CP

Companion Philipp in pro.lua
“1” — ничего не возвращает
источник

АК

Александр Караев... in pro.lua
Companion Philipp
“1” — ничего не возвращает
"1" выглядит странно, но напишем
function f() return 1 end

и желать, чтобы запись f() возвращала как и return f() уже не так странно
источник

CP

Companion Philipp in pro.lua
Александр Караев
"1" выглядит странно, но напишем
function f() return 1 end

и желать, чтобы запись f() возвращала как и return f() уже не так странно
Нет, это всё еще странно. Есть вполне определенная семантика, у которой есть логический смысл.

Что должно вернуть f() “1” “2” end?
источник

CP

Companion Philipp in pro.lua
Ну или я не так понял, что нужно получить на выходе
источник

АК

Александр Караев... in pro.lua
на выходе нужен механизм, который позволит без ключевого слова return возвращать результат последнего выражения, поданного на вход интерпретатору.
1 -> return 1
f()
-> return f()
f(); g()
-> f(); return g()
for i = 1, 5 do end
-> return nil

но я уже понял, что это просто противоречит грамматике языка, так что вопрос снимается. пользователи CLI будут страдать.
источник

T

The Dormouse in pro.lua
Какая-то встроенная в программу консолька с Lua?
источник

T

The Dormouse in pro.lua
В Мунскрипте возвращается результат последнего выражения, хотя, вряд ли он подойдёт.
источник

АК

Александр Караев... in pro.lua
The Dormouse
Какая-то встроенная в программу консолька с Lua?
именно, просто консоль. крайне удручает для просмотра значений писать return val, хотя можно было бы обойтись val
источник

S

Snusmumriken in pro.lua
Александр Караев
именно, просто консоль. крайне удручает для просмотра значений писать return val, хотя можно было бы обойтись val
=val
Оно автоматом заменяет в repl'е первый символ равенства на ретурн.
источник

АК

Александр Караев... in pro.lua
Snusmumriken
=val
Оно автоматом заменяет в repl'е первый символ равенства на ретурн.
у меня не нативный репл, а самописный через dostring
источник

АК

Александр Караев... in pro.lua
но это уже @igor2608 советовал, да, спасибо
источник

S

Snusmumriken in pro.lua
Александр Караев
у меня не нативный репл, а самописный через dostring
Тогда ты можешь туда дописывать всё что угодно ))
Я ещё будучи студиозусом делал калькулятор, который автоматом пишет ответ пока ты пишешь выражение.
источник

S

Snusmumriken in pro.lua
Типа такой поправился чуть-чуть — и ответ для текущей строки тут же изменился. Или изменил переменную выше.
источник

АК

Александр Караев... in pro.lua
Snusmumriken
Тогда ты можешь туда дописывать всё что угодно ))
Я ещё будучи студиозусом делал калькулятор, который автоматом пишет ответ пока ты пишешь выражение.
могу, но просто взять и распарсить строку, найдя в нём последнее выражение с точки зрения всей грамматики языка не кажется мне тривиальной задачей
источник