История изменений
Исправление
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))) следовало бы считать постреонным с использованием разных макросов, потому что после формирвоания списка аргументво каждый раз вызывается разная функция.
Включай мозги и учись правильно различать различные уровни абстракции, «знаток руби».