Sierpinski triangle: Difference between revisions

Undo revision 294290 by Hout (talk)
m (→‎{{header|Python}}: (Added docstrings))
(Undo revision 294290 by Hout (talk))
Line 3,216:
 
and fold/reduce, wrapped as concatMap, can provide the list comprehensions too:
<lang python>'''Sierpinskifrom triangle'''functools import (reduce)
from operator import (add)
 
from functools import reduce
from operator import add
 
 
# sierpinski :: Int -> String
def sierpinski(n):
'''N rows of a Sierpinksi triangle.'''
def go(xs, i):
s = ' ' * (2 ** i)
Line 3,235 ⟶ 3,232:
# concatMap :: (a -> [b]) -> [a] -> [b]
def concatMap(f):
'''A concatenated list or string over which a function f
has been mapped.
The list monad can be derived by using an (a -> [b])
function which wraps its output in a list (using an
empty list to represent computational failure).
'''
return lambda xs: (
reduce(add, map(f, xs), [])
9,659

edits