Pascal's triangle: Difference between revisions
Content added Content deleted
m (→Functional Python: Tidied) |
|||
Line 4,802: | Line 4,802: | ||
def finitePascalRows(n): |
def finitePascalRows(n): |
||
'''The first n rows of Pascal's triangle.''' |
'''The first n rows of Pascal's triangle.''' |
||
def go(a, _): |
|||
⚫ | |||
return accumulate( |
return accumulate( |
||
chain( |
chain( |
||
[[1]], range(1, n) |
|||
), |
|||
⚫ | |||
) |
) |
||
Line 4,839: | Line 4,838: | ||
' ' |
' ' |
||
)(' '.join(map(str, ns))) |
)(' '.join(map(str, ns))) |
||
w = len(' '.join((map(str, ys[-1])))) |
w = len(' '.join((map(str, ys[-1])))) |
||
return '\n'.join(map(align(w), ys)) |
return '\n'.join(map(align(w), ys)) |
||
Line 4,853: | Line 4,853: | ||
q = qr[0] |
q = qr[0] |
||
return (q * c) + s + ((q + qr[1]) * c) |
return (q * c) + s + ((q + qr[1]) * c) |
||
return lambda c: lambda s: go(c, s) |
return lambda c: lambda s: go(c, s) |
||
Line 4,866: | Line 4,867: | ||
yield v |
yield v |
||
v = f(v) |
v = f(v) |
||
return go |
return go |
||