Roc

Other Roc solutions.
module [pascalsTriangle]

pascalsTriangle : U64 -> List (List U64)
pascalsTriangle = \count ->
    if count == 0 then
        []
    else if count == 1 then
        [[1]]
        else

    help = \currentRow, triangle ->

        newRow =
            List.range { start: At 0, end: At currentRow }
            |> List.map \idx ->
                previousRow =
                    List.get triangle (currentRow - 1)
                    |> Result.withDefault []
                leftSide =
                    if idx == 0 then Ok 0 else List.get previousRow (idx - 1)

                rightSide = List.get previousRow idx
                leftSideValue = Result.withDefault leftSide 0
                rightSideValue = Result.withDefault rightSide 0

                leftSideValue + rightSideValue
        newTriangle = List.append triangle newRow
        if currentRow == count - 1 then
            newTriangle
        else
            help (currentRow + 1) newTriangle
    help 1 [[1]]