LINUX.ORG.RU

История изменений

Исправление geekless, (текущая версия) :

Я полагал, что человек знающий руби, должен быть в курсе таки. очевидных вещей

Сколько понтов-то.

Для осоьо одаренных - та звездочка что в оп-посте вообще ее имеет смысла вне [].

Для особо одаренных «знающих руби»: [blabla] — это синтаксический сахар над вызовом class-метода [] класса Array. На, кури:

irb(main):004:0> Array.send(:[], 1, 2, 3)
=> [1, 2, 3]

Поэтому звездочка в [] имеет ровно тот же самый смысл, что и внутри круглых скобок при вызове любого другого метода. Потому что это засахаренный вызов метода, блеать.

И ровно то же самое относится и к присваиванию, потому что рубиевское присваивание a, b, c = *v в lisp-форме эквивалентно записи а ля (do-unbox (= '(a b c) (unbox(v)))) . Только с поправкой, что присваивание как прямой вызов метода нам из сорцов на руби не доступно.

а внешние задабщие конекст формы

Ага, а в примерах из стартового поста формы (do-unbox (function1 a b c (unbox v))), (do-unbox (function2 a b c (unbox v))), (do-unbox (function3 a b c (unbox v))) следовало бы считать построенными с использованием разных макросов, потому что после формирования списка аргументов каждый раз вызывается разная функция.

Включай мозги и учись правильно различать различные уровни абстракции, «знаток руби».

Исправление geekless, :

Я полагал, что человек знающий руби, должен быть в курсе таки. очевидных вещей

Сколько понтов-то.

Для осоьо одаренных - та звездочка что в оп-посте вообще ее имеет смысла вне [].

Для особо одаренных «знающих руби»: [blabla] — это синтаксический сахар над вызовом class-метода [] класса Array. На, кури:

irb(main):004:0> Array.send(:[], 1, 2, 3)
=> [1, 2, 3]

Поэтому звездочка в [] имеет ровно тот же самый смысл, что и внутри круглых скобок при вызове любого другого метода. Потому что это засахаренный вызов метода, блеать.

И ровно то же самое относится и к присваиванию, потому что рубиевское присваивание a, b, c = *v в lisp-форме эквивалентно записи а ля (= '(a b c) `(,@v)) . Только с поправкой, что присваивание как прямой вызов метода нам из сорцов на руби не доступно.

а внешние задабщие конекст формы

Ага, а в примерах из стартового поста формы (do-unbox (function1 a b c (unbox v))), (do-unbox (function2 a b c (unbox v))), (do-unbox (function3 a b c (unbox v))) следовало бы считать построенными с использованием разных макросов, потому что после формирования списка аргументов каждый раз вызывается разная функция.

Включай мозги и учись правильно различать различные уровни абстракции, «знаток руби».

Исходная версия geekless, :

Я полагал, что человек знающий руби, должен быть в курсе таки. очевидных вещей

Сколько понтов-то.

Для осоьо одаренных - та звездочка что в оп-посте вообще ее имеет смысла вне [].

Для особо одаренных «знающих руби»: [blabla] — это синтаксический сахар над вызовом class-метода [] класса Array. На, кури:

irb(main):004:0> Array.send(:[], 1, 2, 3)
=> [1, 2, 3]

Поэтому звездочка в [] имеет ровно тот же самый смысл, что и внутри круглых скобок при вызове любого другого метода. Потому что это засахаренный вызов метода, блеать.

И ровно то же самое относится и к присваиванию, потому что рубиевское присваивание a, b, c = *v в lisp-форме эквивалентно записи а ля (= '(a b c) `(,@v)) . Только с поправкой, что присваивание как прямой вызов метода нам из сорцов на руби не доступно.

а внешние задабщие конекст формы

Ага, а в примерах из стартового поста формы (do-unbox (function1 a b c (unbox v))), (do-unbox (function2 a b c (unbox v))), (do-unbox (function2 a b c (unbox v))) следовало бы считать постреонным с использованием разных макросов, потому что после формирвоания списка аргументво каждый раз вызывается разная функция.

Включай мозги и учись правильно различать различные уровни абстракции, «знаток руби».