Floyd's triangle   lists the natural numbers in a right triangle aligned to the left where

 the first row is   1     (unity)
 successive rows start towards the left with the next number followed by successive naturals listing one more number than the line above.


The first few lines of a Floyd triangle looks like this:

 1
 2  3
 4  5  6
 7  8  9 10
11 12 13 14 15



Task

 Write a program to generate and display here the first   n   lines of a Floyd triangle. 
(Use   n=5   and   n=14   rows).
 Ensure that when displayed in a mono-space font, the numbers line up in vertical columns as shown and that only one space separates numbers of the last row.


define floyds_triangle(n::integer) => {
	local(out = array(array(1)),comp = array, num = 1)
	while(#out->size < #n) => {
		local(new = array)
		loop(#out->last->size + 1) => {
			#num++
			#new->insert(#num)
		}
		#out->insert(#new)
	}
	local(pad = #out->last->last->asString->size)
	with line in #out do => {
		local(lineout = string)
		with i in #line do => {
			#i != #line->first ? #lineout->append(' ')
			#lineout->append((' '*(#pad - #i->asString->size))+#i)
		}
		#comp->insert(#lineout)
	}
	return #comp->join('\r')
}
floyds_triangle(5)
'\r\r'
floyds_triangle(14)