Описание тега proc-object

1 ответ

Ruby Proc: вызов метода из класса A из класса B и использование "метода" класса B

Я не уверен, возможно ли это на самом деле, но я нигде не смог найти четкого ответа. Также мне трудно определить мой вопрос просто "поисковыми терминами". Так что извините, если на это уже ответили где-то еще, я не смог найти его. Я хотел бы знать, …
03 ноя '10 в 02:27
3 ответа

Как распечатать Tcl Proc?

Учитывая простой процесс Tcl, как proc foo {a b} {puts "$a $b"} Какую команду tcl можно использовать для распечатки процедуры foo... то есть я хочу вернуть текст прока... Например: % proc foo {a b} {puts "$a $b"} % foo a b a b % puts $foo can't read…
15 янв '10 в 01:07
1 ответ

Есть ли "простые" объяснения того, что такое проки и лямбды в Ruby?

Есть ли "простые" объяснения того, что такое проки и лямбды в Ruby?
16 ноя '09 в 08:57
3 ответа

Почему оператор break в ruby ​​ведет себя по-разному при использовании Proc.new v. Знак амперсанда?

Оператор break для блоков (согласно языку программирования Ruby) определяется следующим образом: он заставляет блок возвращаться к своему итератору, а итератор - к методу, который его вызвал. Поэтому, когда следующий код выполняется, он приводит к L…
17 янв '12 в 02:28
2 ответа

Что происходит с этой лямбдой? может кто-нибудь объяснить

proc_obj = -> proto { print proto; puts("World")} puts proc_obj["Hi"] puts proc_obj.call("Hello") #Is this is the same as above пожалуйста, направьте меня на какую-нибудь ссылку, чтобы демистифицировать это...
05 дек '11 в 19:53
2 ответа

tcl: завернуть процесс с тем же именем

Я хочу заменить определение "proc N" на proc с тем же именем и соглашениями о вызовах, но с небольшим дополнительным кодом обнаружения ошибок. В Python я мог делать то, что я хочу, как показано ниже, но я не понимаю, как пространства имен и функции …
24 май '11 в 17:57
5 ответов

Рубиновый блок, процы и instance_eval

Я недавно пытался сделать что-то похожее на это: a = "some string" b = Proc.new{ upcase } a.instance_eval b Который дает ошибку: Ошибка типа: не удается преобразовать Proc в строку но это работает: def b(&block) "some string".instance_eval &…
16 июн '11 в 13:24
4 ответа

Почему процы могут вызываться с === в ruby ​​1.9?

В этой статье упоминается 4 способа вызова процедур в ruby ​​1.9, и === является одним из них. Я не понимаю, почему это было бы сделано так вообще. Имеет ли он какое-либо отношение к нормальному значению === (спрашивая, являются ли два объекта одни…
12 мар '12 в 21:01
2 ответа

Зачем использовать методы вместо методов?

Я новичок в программировании, и Ruby - мой первый настоящий опыт. Я получаю блоки, но проки кажутся легким понятием метода / функции - зачем их использовать? Почему бы просто не использовать метод? Спасибо за вашу помощь.
18 мар '12 в 20:08
7 ответов

Как мне собрать лямбду (Proc) в Ruby?

Джо Ван Дайк спросил список рассылки Ruby: Привет, Я полагаю, что в Ruby вы не можете использовать лямбда / процессный объект, верно? Это возможно в lisp или других языках? Что я пытался сделать: l = lamda { ... } Bj.submit "/path/to/ruby/program", …
23 авг '08 в 04:22
1 ответ

Почему этот код выдает ноль после Proc.call?

C:\>irb irb(main):001:0> s = Proc.new { puts "Hello" } => #<Proc:0x04051780@(irb):1> irb(main):002:0> s.call Hello => nil Что вызывает ноль? ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
16 сен '09 в 16:51
2 ответа

Динамические стили Proc скрепки, вызываемые до инициализации объекта

У меня есть следующие настройки скрепки. Что происходит, так это то, что я использую процедуру для установки размеров для различных стилей. Тем не менее, процесс вызывается по новому и во время супер-вызова. Я прошел через отладчик, и кажется, что о…
2 ответа

Proc.new в Ruby: когда мне нужно его использовать?

Date_validator в своих примерах имеет комментарий: Using Proc.new prevents production cache issues Означает ли это, что везде в моем коде, где я использую методы, связанные с текущим временем (Time.now, 1.day.since(Time.zone.now) и т. Д.), Я должен…
19 июн '11 в 15:33
3 ответа

TCL - вернуть переменную против упвара и изменить

Хотел бы посоветоваться с профессионалами TCL для лучшей практики. Допустим, вы хотите создать список с конкретными данными, используя процедуру. Что лучше? proc processList { myList } { upvar $myList list_ #append necessary data into list_ } proc r…
24 июн '11 в 08:09
3 ответа

Как использовать переменную в качестве значения по умолчанию для аргумента процедуры TCL

У меня есть переменная, которую я хотел бы использовать в качестве значения по умолчанию для аргумента: proc log {message {output $::output}} { .... } Есть ли способ сделать это или мне нужно оценить переменную внутри моего процесса?
23 июн '11 в 09:53
4 ответа

Ruby - что это за выход

Я знаю, что этот код может быть не совсем правильным: def print_string(&str) puts str end print_string{"Abder-Rahman"} Но когда я запускаю его, вот что я получаю: #<Proc:0x03e25d98@r.rb:5> Что это за выход?
12 авг '11 в 17:22
1 ответ

Ссылка на локальную переменную из Proc, определенного в другой области видимости

Я хочу создать метод экземпляра, который изменяет свое поведение с возвращаемым значением другого метода в зависимости от реализации его перезаписи полиморфным способом. Например, следующий класс предполагается расширенным и pricing_rule должен меня…
03 май '11 в 13:27
4 ответа

Использование процедур с DSL Руби

Для удобства пользователя и более чистого кода я хотел бы написать класс, который можно использовать так: Encoder::Theora.encode do infile = "path/to/infile" outfile = "path/to/outfile" passes = 2 # ... more params end Теперь задача состоит в том, ч…
21 янв '11 в 08:06
3 ответа

Невозможно передать переменную в процедуру, используя upvar в Tcl

Мне нужна процедура, которая сможет получить доступ, прочитать и изменить переменную из пространства имен вызывающей стороны. Переменная называется _current_selection, Я пытался сделать это с помощью upvar несколькими разными способами, но ничего не…
21 окт '11 в 09:01
4 ответа

Как вы структурируете / сериализуете код Ruby?

Я хочу иметь возможность написать лямбда /Proc в своем коде Ruby, сериализовать его, чтобы я мог записать его на диск, а затем выполнить лямбда позже. Вроде как... x = 40 f = lambda { |y| x + y } save_for_later(f) Позже, в отдельном выпуске интерпре…
14 окт '08 в 00:44