> Doru I have multiple missingValue so that they embed their own strategy.
> Now I do not know for the scenario of alex.

For example, obtaining the classes for which metrics cannot be computed (e.g., 
source code is missing).

Alexandre


> 
>> 
>> Cheers,
>> Doru
>> 
>> 
>>> On Dec 21, 2016, at 8:13 AM, Alexandre Bergel <alexandre.ber...@me.com> 
>>> wrote:
>>> 
>>> Hi Stef,
>>> 
>>> You are raising an interesting point to discuss. This MissingValue is 
>>> indeed better than having -1
>>> Something to keep in mind: it may be that one would like to focus on the 
>>> missing value and not really the value.
>>> 
>>> Consider:
>>> 
>>>> testCollect
>>>> 
>>>>    | uarray collected |
>>>>    uarray := UniformOrderedCollection new.
>>>>    uarray add: 10.
>>>>    uarray add: 20.
>>>>    uarray add: (MissingValue discarding).
>>>>    collected := uarray collect: [ :each | each ].  
>>>>    self assert: collected size equals: 2.
>>> 
>>> It could well be that I would like to be able to query over the 
>>> MissingValue.
>>> Can something like possible: uarray collect: #isMissing
>>> ?
>>> 
>>> Cheers,
>>> Alexandre
>>> 
>>> 
>>>> On Dec 20, 2016, at 10:15 PM, stepharong <stephar...@free.fr> wrote:
>>>> 
>>>> Hi dear great OO designers
>>>> 
>>>> Here is a little challenges for your brainy souls :)
>>>> 
>>>> In Moose when we compute metrics it may happen than a tool (often external 
>>>> to pharo) does not compute a metrics
>>>> and when we request it in moose we check and often we return a not so good 
>>>> -1.
>>>> 
>>>> I'm trying to brainstorm on a solution
>>>> 
>>>> - first may be the simplest way is to not invoke a metrics when it is not 
>>>> computed. But it means that we should know it and that we should have a 
>>>> registration mechanism. After all this is probably the best solution.
>>>> 
>>>> - Second we were thinking to use exception but when we have multiple 
>>>> entities missing one metrics.... I have serious doubts.
>>>> 
>>>> - Second I was thinking about having the following behavior
>>>> 
>>>> testCollect
>>>> 
>>>>    | uarray collected |
>>>>    uarray := UniformOrderedCollection new.
>>>>    uarray add: 10.
>>>>    uarray add: 20.
>>>>    uarray add: (MissingValue discarding).
>>>>    collected := uarray collect: [ :each | each ].  
>>>>    self assert: collected size equals: 2.
>>>> 
>>>> testDo
>>>> 
>>>>    | res uarray |
>>>>    uarray := UniformOrderedCollection new.
>>>>    uarray add: 10.
>>>>    uarray add: 20.
>>>>    uarray add: (MissingValue discarding).
>>>>    uarray add: 40.
>>>>    res := 0.
>>>>    uarray do: [ :each | res := res + each ].       
>>>>    self assert: res equals: 70.
>>>> 
>>>> 
>>>> testCollectDefaulting
>>>> 
>>>>    | uarray collected |
>>>>    uarray := UniformOrderedCollection new.
>>>>    uarray add: 10.
>>>>    uarray add: 20.
>>>>    uarray add: (MissingValue default: 33).
>>>>    collected := uarray collect: [ :each | each ].  
>>>>    self assert: collected size equals: 3.
>>>>    self assert: collected third equals: 33
>>>> 
>>>> 
>>>> I basically started to implement
>>>> 
>>>> 
>>>> do: aBlock
>>>>    "Refer to the comment in Collection|do:."
>>>>    1 to: self size do:
>>>>            [:index | (self at: index) toDo: aBlock on: self]
>>>> 
>>>> 
>>>> 
>>>> collect: aBlock
>>>>    "Evaluate aBlock with each of the receiver's elements as the argument.
>>>>    Collect the resulting values into a collection like the receiver. Answer
>>>>    the new collection."
>>>> 
>>>>    | newCollection |
>>>>    newCollection := self species new.
>>>>    self
>>>>            do: [ :each | each toCollect: aBlock on: newCollection ].
>>>>    ^ newCollection
>>>> 
>>>> 
>>>> and
>>>> 
>>>> DiscardingValue >> toCollect: aBlock on: aCollection
>>>>    "discard computation"
>>>>    ^ self
>>>> 
>>>> 
>>>> Object >> toCollect: aBlock on: aCollection
>>>> 
>>>>    ^ aCollection add: (aBlock value: self)
>>>> 
>>>> 
>>>> So I imagine that you see the design and I wanted to get your point of 
>>>> view.
>>>> 
>>>> --
>>>> Using Opera a kind of bad mail client but far better than thunderbird
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> moose-...@list.inf.unibe.ch
>>>> https://www.list.inf.unibe.ch/listinfo/moose-dev
>>> 
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel  http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> Moose-dev mailing list
>>> moose-...@list.inf.unibe.ch
>>> https://www.list.inf.unibe.ch/listinfo/moose-dev
>> 
>> --
>> www.tudorgirba.com
>> www.feenk.com
>> 
>> "If you interrupt the barber while he is cutting your hair,
>> you will end up with a messy haircut."
>> 
>> 
> 
> 
> -- 
> Using Opera's mail client: http://www.opera.com/mail/
> _______________________________________________
> Moose-dev mailing list
> moose-...@list.inf.unibe.ch
> https://www.list.inf.unibe.ch/listinfo/moose-dev

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply via email to