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

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #135 : Ноябрь 13, 2012, 08:32:08 am »
Я таки дико извиняюсь, но при чем тут скриптовость? Вообще у скриптовых языков, как раз, функции высшего порядка встречаются не так уж и часто, ибо не нужны
tcl, python, lua, ruby, js...  :P

И вообще:
Сценарный язык

Мы с тобой кажется о разных вещах говорим.  ;)
Я имею в виду не командно-сценарные языки, а прикладные и универсальные (по терминологии wiki)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #136 : Ноябрь 13, 2012, 08:38:22 am »
Я таки дико извиняюсь, но при чем тут скриптовость? Вообще у скриптовых языков, как раз, функции высшего порядка встречаются не так уж и часто, ибо не нужны
tcl, python, lua, ruby, js...  :P

И вообще:
Сценарный язык
А универсальные это уже не скриптовые языки, а языки общего назначения. Отличий от того же С++ в общем то и нет.

Мы с тобой кажется о разных вещах говорим.  ;)
Я имею в виду не командно-сценарные языки, а прикладные и универсальные (по терминологии wiki)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #137 : Ноябрь 13, 2012, 08:46:36 am »
Сравнение с плюсами не интересно  :)
И так понятно что на cpp  можно все  ;)
Давай на Oberon  ;D

Скриптовый язык ценится не наличием фич, а простотой и легкостью их использования.

Мне на изучение Lua хватило 3 дней. А сколько ты изучал cpp?  ;)
Ну, во-первых не три дня, а во вторых так считать нельзя. :-)

Сколько языком пользуешься столько и изучаешь его. Я например Оберон изучаю чуть менее чем С++. С 2005го года. И постоянно что-то новенькое вылазит. Вот недавно Влад там забавное отковырял очередное...
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #138 : Ноябрь 13, 2012, 08:52:44 am »
Мне на изучение Lua хватило 3 дней.
Вот именно что три.  :) Причем половину этого времени я курил ООП.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #139 : Ноябрь 13, 2012, 09:00:11 am »
Мне на изучение Lua хватило 3 дней.
Вот именно что три.  :) Причем половину этого времени я курил ООП.
Да, сложно курить то, чего там нет :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #140 : Ноябрь 13, 2012, 09:01:30 am »
Quine?
for line in io.lines("c:\\test.lua") do
    print(line)
end
Это не Quine. По определению.
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #141 : Ноябрь 13, 2012, 09:08:55 am »
Цитата: valexey
Да, сложно курить то, чего там нет :-)

Ну да. Но там в языке есть поддержка прототипного ООП. Нужно некоторое время чтобы понять как этим пользоваться и как можно организовать классическое ООП. К тому же русские источники не айс. А первоисточник на ангельском... хотя как оказалось на довольно простом ангельском.

В общем могу сэкономить кучу времени тому, кто собрался изучать Lua:
НЕ ЧИТАЙТЕ НИЧЕГО КРОМЕ Programming in Lua by Roberto Ierusalimschy  ;D

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #142 : Ноябрь 13, 2012, 09:10:01 am »
Quine?
for line in io.lines("c:\\test.lua") do
    print(line)
end
Это не Quine. По определению.
Я в курсе  ;D (там вообще-то классическая PFFF шутка  ;) )

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #143 : Ноябрь 13, 2012, 09:15:34 am »
Цитата: valexey
Да, сложно курить то, чего там нет :-)

Ну да. Но там в языке есть поддержка прототипного ООП. Нужно некоторое время чтобы понять как этим пользоваться и как можно организовать классическое ООП.
И как там организовать асинхронную посылку сообщений от объекта к объекту, сообщения содержащие, в том числе, всякие там блоки кода? :-) Мы ведь про классическое ООП, которое в Smalltalk'e? ;-)
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #144 : Ноябрь 13, 2012, 09:18:35 am »
Не не не...  :)  Я про то, что в CP, Java, cpp и т.д.
В смолтоке я сам мало что понимаю  ;D

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #145 : Ноябрь 13, 2012, 09:23:20 am »
Не не не...  :)  Я про то, что в CP, Java, cpp и т.д.
В смолтоке я сам мало что понимаю  ;D
А, ну так это и не ООП вовсе ;-)
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #146 : Ноябрь 13, 2012, 09:31:38 am »
Кстати, valexey, а при чем там функции высших порядков? На Oberon'е ведь тоже можно POINTER передать параметром...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #147 : Ноябрь 13, 2012, 09:33:40 am »
Кстати, valexey, а при чем там функции высших порядков? На Oberon'е ведь тоже можно POINTER передать параметром...
POINTER на ЧТО? ;-)

Чтобы сделать полноценную типобезопасную функцию sort, нужно чтобы она принимала в качестве одного из параметров именно функцию (указатель на функцию) определенного типа. А не void*.
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #148 : Ноябрь 13, 2012, 09:52:36 am »
Ну типа так:

MODULE SmartTest;
IMPORT
    Log := StdLog;
TYPE
    P = PROCEDURE(a, b: INTEGER): BOOLEAN;

PROCEDURE Comp(a, b: INTEGER): BOOLEAN;
BEGIN
    RETURN a < b;
END Comp;

PROCEDURE Sort(func: P);
VAR
    a, b: INTEGER;
    res: BOOLEAN;
BEGIN
    a := 1;
    b := 2;
    res := func(a, b);
    Log.Bool(res);
END Sort;
   
PROCEDURE Do*();   
BEGIN
    Sort(Comp)
END Do;
   
BEGIN
END SmartTest.Do

То же самое что и в луашной сортировке... не?  ???

DIzer

  • Гость
Re: Lua
« Ответ #149 : Ноябрь 13, 2012, 09:56:18 am »

Мне на изучение Lua хватило 3 дней. А сколько ты изучал cpp?  ;)
КРАЙНЕ не корректное сравнение..