view range.rhope @ 148:f582fd6c75ee

Fixed framework port, works for said.rhope example
author Mike Pavone <pavone@retrodev.com>
date Mon, 22 Nov 2010 01:37:05 -0500
parents a34a982ecd32
children
line wrap: on
line source


Blueprint Range
{
	Start
	End
}

Range[start,end:out]
{
	out <- [[Build[Range()]]Start <<[start]]End <<[end]
}

First@Range[range:out,none]
{
	If[[[range]Start >>] < [[range]End >>]]
	{
		out <- [range]Start >>
	}{
		none <- range
	}
}

Next@Range[range,val:out,done]
{
	next <- [val]+[1]
	If[[next] < [[range]End >>]]
	{
		out <- Val[next]
	}{
		done <- range
	}
}

Index@Range[range,index:out,notfound]
{
	If[[index] < [[range]End >>]]
	{
		If[[index] < [[range]Start >>]]
		{
			notfound <- index
		}{
			out <- index
		}
	}{
		notfound <- index
	}
}

Set@Range[range,index,val:out]
{
	out <- [[()]Concatenate[range]
	]Set[index,val]
}