> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.