Creating a list of specified length

Here is a little utility to efficiently create a list of specified length, with each element some specified initial value.

I had been searching for some time for something like this and then developed little bit of code.

on makeList(listLength, theElement)
	-- Note that the theElement can even be a List
	if listLength = 0 then return {}
	if listLength = 1 then return {theElement}

	set theList to {theElement}
	repeat while (count of theList) < listLength / 2
		set theList to theList & theList
	end repeat
	return (theList & items 1 thru (listLength - (count of theList)) of theList)
end makeList