1 def solve(goal, values) 2 x = values.____ 3 4 subsets = lambda do |k| 5 return { _______ } if k < 0 6 old_sums = subsets[___] 7 8 new_sums = ___ 9 10 old_sums.keys.each do |p| 11 c = p + ____ 12 new_sums[c] = _________________ if c <= goal 13 end 14 15 return old_sums._____(new_sums) 16 end 17 18 z = subsets[values.________][goal] || [] 19 x.values_at(*z) 20 end 21 22 rdropbox = { 23 'free-lunch' => 802, .. ......................., 34 'playing-drums' => -295 35 }.invert 36 37 s = solve(0, rdropbox.keys) 38 puts s.inspect 39 puts rdropbox.values_at(*s).inspect
________________
)
_______________
)
__________________
)
_______________
)
_________
)
e = 'c'.re - +('d'.re | 'r'.re) # /c(d|r)+/ s = 'crddf' remaining = e[s] # s =~ /c(d|r)+/ puts "/c(d|r)+/ '#{s}' Matched. Remaining = '#{remaining}'" if remaining # /c(d|r)+/ 'crddf' Matched. Remaining = 'f' e = 'c'.re - ~('d'.re | 'r'.re) # /c(d|r)*/ s = 'cdrdrf' remaining = e[s] # s =~ /c(d|r)*/ puts "/c(d|r)*/ '#{s}' Matched. Remaining = '#{remaining}'" if remainingRellene el código que falta:
1 class ____ 2 3 def -(right) # concatenacion 4 lambda { |x| _ _ self[x] ___ right[_] } 5 end 6 7 def |(right) # or 8 lambda { |x| self[x] __ _____[x] } 9 end 10 11 def epsilon # palabra vacía 12 lambda {|x| _ } 13 end 14 15 def ~ # cierre de Kleene * 16 lambda { |x| (_____)[x] or self._______[x] } 17 end 18 19 def +@ # cierre positivo 20 lambda { |x| (____________)[x] } 21 end 22 23 end # Proc 24 25 class ______ 26 def re 27 lambda { |x| x[0,self.______] == ____ and x[self.______..__] } 28 end 29 end
send
?¿Que argumentos lleva? ¿que retorna?
define_method
? ¿Cómo funciona?
¿Que argumentos recibe? ¿Que devuelve? ¿En que contexto espera ser evaluado?
/^[a-z_]+\w*$/i
?
method_missing
? ¿Que argumentos espera? ¿Que precauciones hay que tomar
cuando se escribe uno?
1 require 'delegate' 2 class Set < DelegateClass(Array)¿Que ocurre en la línea 2? ¿Que debe hacerse en el
initialize
para que el proceso de delegación funcione?
index
de un objeto de la clase Array
?
x
?
x
?
mm
de una clase o módulo MM
por nuestro propio mm
?
markby
:
class HTML attr_accessor :page def initialize(&block) @page = ____ _____________ &block end def build_attr(attributes) return '' if attributes.nil? or attributes._____? attributes.______(__) { |s,x| s += %{ ___________________ } } end def method_missing(tag, *args) if block_given? @page.____ ______ _____ text = @page.________ else text = args.__________ || "\n" end tagattr = build_attr(args.shift) text = "______________________________________" @page[__].push ____ text end def to_s @page.join("\n") end end
git init
git add
git commit
git clone ssh://..
git status
git diff oldref newref
git push
git pull
require '_________'
para elaborar una prueba?
Test::Unit
?
Rake
?
Rakefile
¿cierto o falso?
sh
?
libs
y pattern
del objeto t
en el siguiente código?
Rake::TestTask.new do |t| t.libs << "test" t.test_files = FileList['test/test*.rb'] t.verbose = true end
Casiano Rodriguez León 2015-01-07