Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2
- (lambda sys, loop, seq:
- reduce(
- lambda stack, char: {
- '+': lambda stack: [seq(stack[0], lambda (left, head, right): (left, head + 1, right))] + stack[1:],
- '-': lambda stack: [seq(stack[0], lambda (left, head, right): (left, head - 1, right))] + stack[1:],
- '<': lambda stack: [seq(stack[0], lambda (left, head, right): (left[:-1], left[-1], [head]+right))] + stack[1:],
- '>': lambda stack: [seq(stack[0], lambda (left, head, right): (left + [head], (right or [0])[0], right[1:]))] + stack[1:],
- ',': lambda stack: [seq(stack[0], lambda (left, head, right): (left, ord(sys.stdin.read(1) or chr(head)), right))] + stack[1:],
- '.': lambda stack: [seq(stack[0], lambda (left, head, right): (left, sys.stdout.write(chr(head)) or head, right))] + stack[1:],
- '[': lambda stack: [lambda data: data] + stack,
- ']': lambda stack: [seq(stack[1], loop(stack[0]))] + stack[2:]
- }[char](stack),
- filter(lambda c: c in "+-<>[],.", file(sys.argv[1]).read()),
- [lambda data: data]) [0] (([], 0, []))
- )(
- __import__("sys"),
- lambda body: lambda data: (lambda hack: map(lambda data: hack.append(body(data)) if data[1] else data, hack)[-1])([data]),
- lambda first, next: lambda data: next(first(data))
- )
Add Comment
Please, Sign In to add comment