RosettaCodeData/Task/Pascals-triangle/Jq/pascals-triangle-1.jq
2023-07-01 13:44:08 -04:00

11 lines
338 B
Text

# pascal(n) for n>=0; pascal(0) emits an empty stream.
def pascal(n):
def _pascal: # input: the previous row
. as $in
| .,
if length >= n then empty
else
reduce range(0;length-1) as $i
([1]; . + [ $in[$i] + $in[$i + 1] ]) + [1] | _pascal
end;
if n <= 0 then empty else [1] | _pascal end ;