Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import collections
- # Generic n-ary tree
- RoseTree = collections.namedtuple('RoseTree', 'a children')
- def gen_int():
- def _gen_int(rng, size):
- return rng.randrange(0, size)
- return _gen_int
- def gen_v(g):
- def _gen_v(rng, size):
- n = rng.randrange(0, size)
- return [g(rng, size) for _ in range(n)]
- return _gen_v
- def fmap(f, g):
- def _fmap(rng, size):
- result = g(rng, size)
- return f(result)
- return _fmap
- rng = random.Random()
- print gen_int()(rng, 20)
- v = gen_v(gen_int())
- print v(rng, 10)
- print fmap(lambda x: x * 2, v)(rng, 10)
- even_v = gen_v(fmap(lambda x: x * 2, gen_int()))
- print even_v(rng, 10)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement