Автор Тема: Lua  (Прочитано 115230 раз)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #210 : Ноябрь 24, 2012, 11:45:39 am »

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #211 : Ноябрь 24, 2012, 12:01:05 pm »
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #212 : Ноябрь 24, 2012, 03:47:56 pm »
Кувасик так неожиданно в списке  ;D

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #213 : Ноябрь 25, 2012, 12:55:32 pm »
Запилил себе тулзу, которая выдирает метаданные из буфера обмена 1С.
...

Опубликовал на инфостарте:
http://infostart.ru/public/163332/

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #214 : Ноябрь 30, 2012, 04:39:10 pm »
Прикольно:  :D
http://repl.it/FFp

Чую эти особенности Lua нужно курить основательно, чтоб по граблям потом не гулять...

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Lua
« Ответ #215 : Ноябрь 30, 2012, 05:36:49 pm »
Прикольно:  :D
http://repl.it/FFp

Чую эти особенности Lua нужно курить основательно, чтоб по граблям потом не гулять...
А что не так в этом коде:
i = 10
for i in ipairs({1,2,3,4}) do
    print(i)
end
print(i)
?
Тут просто в цикле создаётся новая переменная i, которая скрывает внешнюю для цикла переменную i...
Кстати, а в описании Lua этот момент указан хоть?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #216 : Ноябрь 30, 2012, 05:44:20 pm »
Да все так. В документации конечно описано.
Просто несколько непривычно это  :)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #217 : Ноябрь 30, 2012, 05:45:33 pm »
Да все так. В документации конечно описано.
Просто несколько непривычно это  :)
Грабли они не в языках, а в головах.
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #218 : Ноябрь 30, 2012, 05:49:55 pm »
http://www.lua.ru/doc/2.4.5.html
Цитировать
Переменная v является локальной для цикла; вы не сможете использовать ее значение после выхода из цикла for. Если вам необходимо значение этой переменной, присвойте его другой переменной перед выходом из цикла.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #219 : Ноябрь 30, 2012, 05:53:57 pm »
Да все так. В документации конечно описано.
Просто несколько непривычно это  :)
Грабли они не в языках, а в головах.
Не возражаю.  :)
Язык только наступить помогает...  ;D

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #220 : Ноябрь 30, 2012, 05:58:52 pm »
На самом деле эта луашная особенность была бы очень кстати оберону...

DIzer

  • Гость
Re: Lua
« Ответ #221 : Ноябрь 30, 2012, 06:11:42 pm »
На самом деле эта луашная особенность была бы очень кстати оберону...
это какая - вшитый по умолчанию побочный эффект.. с неожиданными исключениями из него в некоторых конструкциях ?-  спаси господи... ;D

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #222 : Ноябрь 30, 2012, 06:14:44 pm »
Ну конкретно для FOR объявлять в секции VAR переменную цикла имхо лишнее.

DIzer

  • Гость
Re: Lua
« Ответ #223 : Ноябрь 30, 2012, 06:29:53 pm »
Ну конкретно для FOR объявлять в секции VAR переменную цикла имхо лишнее.
может и так.. но есть несомненный плюс в ОБЕРОНЕ , Паскале... НИЧЕГО НЕЛЬЗЯ СДЕЛАТЬ с переменной не объявив ее - имхо проще запомнить одно правило - хочешь использовать переменную - объяви ее... чем запоминать исключения и удивляться неожиданным эффектам следующим из них.
или второе... - хочешь создать локальное окружение.. -у тебя один способ -подпрограмма, вместо бездумного (удобного) создания переменных "где -надо" начинающими поклонниками крутизны.. интеллект которых недостаточно развит для учета эффекта затенения...
« Последнее редактирование: Ноябрь 30, 2012, 06:34:15 pm от DIzer »

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #224 : Ноябрь 30, 2012, 06:46:56 pm »
Это да. Согласен.

В Lua с ее областями видимости наколоться раз плюнуть.

Например забыл указать что переменная локальная в функции и все... приехали.
Мне вообще сначала умолчательная глобальность переменных казалась ересью.
Т.е. здравый смысл подсказывает, что неявно объявленная переменная должна быть локальной для функции. Но в Lua локальность нужно явно указывать...
Вроде логичнее было бы явно наоборот глобальность указывать, но потом я понял что в Lua сделали упор на удобство использования замыканий.
И оно вроде даже нормально если мыслить замыканиями. Но один хрен ощущается изъян в дизайне языка.