Fragments (1)

20 novembre 2018

Cliquez sur l’image pour agrandir

Enthousiasmé par cette idée géniale (Pharo Script of the Day), fournir des scripts simples pour montrer rapidement certains aspects de Pharo Smalltalk, j’ai décidé de reprendre l’idée et de, moi aussi, vous offrir quelques fragments de code Smalltalk.

Voici donc le premier de ces scripts, fragments de code.

Une idée toute simple qui vous permet d’itérer sur les éléments d’une collection avec une probabilité d’évaluer le block fourni.  C’est particulièrement utile si vous avez à écrire du code de simulation!

Vous n’avez qu’à implémenter la méthode qui suit dans la classe SequenceableCollection.


sometimes: aNumber do: aBlock 
	| rng |
	
	(aNumber between: 0 and: 1) 
            ifFalse: [self error: 'Argument <aNumber> must be between 0 and 1!'].
	rng := Random new.
	self do: [:each | (rng next < aNumber) ifTrue: [aBlock value: each]]