class PascalsTriangle { var prevRow = []; int getElement(int index) => prevRow[index - 1] + prevRow[index]; List generateInnerRows(int row) { var innerRow = List.generate(row + 1, (index) => (index == 0 || index == row) ? 1 : getElement(index)); prevRow = [...innerRow]; return innerRow; } List> rows(int numberOfRows) => List.generate(numberOfRows, (row) => generateInnerRows(row)); }