"Curt Sampson" <cjs / cynic.net> schrieb im Newsbeitrag
news:Pine.NEB.4.61.0501241709080.14312 / angelic-vtfw.cvpn.cynic.net...
> On Fri, 14 Jan 2005, David A. Black wrote:
>
> >> def silly_example(str.to_str, count.to_int)
> >>  # str and count are converted like in the example above
> >>  s = ""
> >>  count.times { s << str }
> >>  s
> >> end
> >
> >  obj = Object.new
> >  def obj.times; 10; end
> >  str = silly_example("hello", obj)
> >
> > Here you have an object that responds to 'times', so it's capable of
> > being treated in a duck-typing way by simply being sent the message
> > 'times' -- but if you intercept the object and do a to_int on it,
> > there's trouble.
> >
> > (Of course you could document your method by saying that it requires
> > an object that responds to to_int, but that seems a bit roundabout
> > compared to just saying you want an object that responds to times.)
>
> I don't see why there would be a need to add documentation indicating
> that count must respond to times, since it's already written right there
> in the code. We just need a type inference engine to find this and tell
> us about it.

That would be a completely different language.  I guess you're thinking of
some functional languages...

Regards

    robert