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.

Reply via email to