Actually, I don't. I lost track of all the Java compatibility stuff a couple of years ago. It all sounds good now but I just don't know it. On Jul 31, 2012 4:29 PM, "Kevin Wright" <[email protected]> wrote:
> Hang on... What's with all this "could" business? > > You know full well that it already does! > On Jul 31, 2012 5:50 PM, "Ricky Clarkson" <[email protected]> > wrote: > >> Scala could add .map, .flatMap etc., to, say, java.util.Enumeration, via >> implicit conversions, so then you could write: >> >> for (element <- enumeration) stuff using element >> >> In Java you'll need an explicit wrapper object, i.e., noise. >> >> On Tue, Jul 31, 2012 at 1:44 PM, Dale Wijnand <[email protected]>wrote: >> >>> I fail to see how that is any different to Java's for-each depending on >>> Iterable. You've replaced depending on a type with adhering to a >>> implied method signature, or am I missing something? >>> >>> Dale >>> >>> >>> On 31 July 2012 18:39, Kevin Wright <[email protected]> wrote: >>> >>>> You can implement FilterMonadic if you want, but the compiler doesn't >>>> demand that you do. >>>> >>>> It's more useful as a marker trait, and to be sure that you've >>>> implemented all the methods that you intended to implement. >>>> >>>> comprehensions are transformed to map/flatMap/etc. very early on in the >>>> compiler, and certainly don't rely on any type information. >>>> >>>> >>>> >>>> On 31 July 2012 14:45, Dale Wijnand <[email protected]> wrote: >>>> >>>>> Doesn't that mean it must >>>>> implement scala.collection.generic.FilterMonadic? >>>>> (or is it scala.collection.GenTraversableOnce..) >>>>> >>>>> Dale >>>>> >>>>> On 31 July 2012 14:46, Kevin Wright <[email protected]> wrote: >>>>> >>>>>> Without lambdas, you're a bit limited here. But with them, I've >>>>>> found scala's approach to work well. >>>>>> >>>>>> for(x <- xs) { println(x) } >>>>>> >>>>>> is just syntactic sugar for >>>>>> >>>>>> xs foreach { x => println(x) } >>>>>> >>>>>> >>>>>> >>>>>> and >>>>>> >>>>>> for(x <- xs) yield { x.toUpperCase } >>>>>> >>>>>> is >>>>>> >>>>>> xs map { x => x.toUpperCase } >>>>>> >>>>>> >>>>>> *anything* with the appropriate map/flatMap/filter/foreach method(s) >>>>>> on can be used in a for-comprehension. >>>>>> (which is why scala doesn't call it a "for loop", because it really >>>>>> isn't) >>>>>> >>>>>> >>>>>> On 31 July 2012 13:31, Dale Wijnand <[email protected]> wrote: >>>>>> >>>>>>> I would say you could create delegating iterables/iterators for those >>>>>>> types. What would be an alternative would you have preferred? >>>>>>> >>>>>>> Dale >>>>>>> >>>>>>> On 31 July 2012 14:17, Kevin Wright <[email protected]>wrote: >>>>>>> >>>>>>>> Yes/No. You're still forced to only use it with things that can be >>>>>>>> Iterables, yet there's a whole category of stuff where foreach makes >>>>>>>> sense, >>>>>>>> but can't be represented in this manner. >>>>>>>> >>>>>>>> One of the more obvious examples here is something like a stream of >>>>>>>> lines coming over a network socket, in which you want the body of the >>>>>>>> foreach expression to be executed asynchronously for each incoming line >>>>>>>> (perhaps by dispatching to a thread pool), and for the expression as a >>>>>>>> whole to be non-blocking. >>>>>>>> >>>>>>>> >>>>>>>> On 31 July 2012 08:15, Roland Tepp <[email protected]> wrote: >>>>>>>> >>>>>>>>> Sorry, couldn't resist, but let your class implement Iterable and >>>>>>>>> voila - the foreach is extended! >>>>>>>>> >>>>>>>>> esmaspäev, 30. juuli 2012 15:55.30 UTC+3 kirjutas Ricky Clarkson: >>>>>>>>> >>>>>>>>>> 6. foreach is not open for extension, i.e., it only works with >>>>>>>>>> Iterables and arrays. >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Java Posse" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/javaposse?hl=en. >>> >> >> -- You received this message because you are subscribed to the Google Groups "Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
