view Looping.st @ 5:861b93741d60

id:sumim氏のSmalltalk版とRuby版のコードを追加。
author "uncorrelated zombie" <uncorrelated@yahoo.co.jp>
date Thu, 17 Feb 2011 11:32:17 +0900
parents
children
line wrap: on
line source

'From Squeak4.2 of 4 February 2011 [latest update: #10966] on 17 February 2011 at 8:44:09 am'!
Object subclass: #Looping
	instanceVariableNames: 'n0'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Benchmark-Looping'!

!Looping methodsFor: 'calculation' stamp: 'sumim 2/17/2011 00:17'!
calc: n
	| n1 |
	n1 := n0 + (1 - (2 * (n \\ 2))).
	n0 := n.
	^n1! !

!Looping methodsFor: 'initializing' stamp: 'sumim 2/16/2011 23:59'!
initialize
	n0 := 0! !


!Looping class methodsFor: 'benchmark' stamp: 'sumim 2/17/2011 00:52'!
benchmark
	"self benchmark"
	| l n t1 t2 |
	l := Looping new.
	n := 1.
	t1 := Time millisecondClockValue.
	2147483647 timesRepeat: [
		n := l calc: n
	].
	t2 := Time millisecondClockValue.
	Transcript cr; show: n printString.
	Transcript cr; show: 'Smalltalk'; tab; show: (t2 - t1 / 1000.0) printString! !

Looping benchmark!